Files
OrpaonVision/OrpaonVision.Core/Domain/EntityBase.cs
2026-04-06 22:04:05 +08:00

52 lines
1013 B
C#

namespace OrpaonVision.Core.Domain;
/// <summary>
/// 实体基类。
/// </summary>
public abstract class EntityBase
{
/// <summary>
/// 主键ID。
/// </summary>
public long Id { get; set; }
/// <summary>
/// 判断实体是否为临时实体(未持久化)。
/// </summary>
public bool IsTransient => Id <= 0;
/// <summary>
/// 重写Equals方法。
/// </summary>
public override bool Equals(object? obj)
{
if (obj is null || obj.GetType() != GetType())
{
return false;
}
if (obj is EntityBase other)
{
return other.Id == Id;
}
return false;
}
/// <summary>
/// 重写GetHashCode方法。
/// </summary>
public override int GetHashCode()
{
return Id.GetHashCode();
}
/// <summary>
/// 重写ToString方法。
/// </summary>
public override string ToString()
{
return $"{GetType().Name}#{Id}";
}
}