我使用DDD和EF Core设计了我的域。
假设我的实体看起来是这样的。
public sealed class ArticleEntity
{
private ArticleEntity() { }
public ArticleId Id { get; private set; }
public string Name { get; private set; }
}
我的ArticleId ValueObject是这样的:
public sealed class ArticleId
{
public ArticleId(int value)
{
Value = value;
}
public int Value { get; }
public static bool operator ==(ArticleId obj1, ArticleId obj2)
{
return (obj1 is null && obj2 is null)
|| (!(obj1 is null) && obj1.Equals(obj2));
}
public static bool operator !=(ArticleId obj1, ArticleId obj2)
{
return !(obj1 == obj2);
}
public override string ToString()
{
return base.ToString();
}
public override int GetHashCode()
{
return base.GetHashCode();
}
public override bool Equals(object obj)
{
return base.Equals(obj);
}
}
我通过这样的查询从Repository获取数据。
public ArticleEntity Get(ArticleId id)
{
return _context.Articles
.SingleOrDefault(a => a.Id == id);
}
当我浏览日志的时候,我看到这样的条目:
20500