尝试使用ASP.NET Boilerplate和实体框架实现DDDEmployee
对象
public class Employee : Entity<long>
{
public virtual string Name { get; protected set; }
public virtual Nationality Nationality { get; protected set; }
}
定义属性
Nationality
,它是值对象public class Nationality : ValueObject<Nationality>
{
public virtual string Name { get; protected set; }
}
尝试添加数据库迁移会产生明显的错误
EntityType 'Nationality' has no key defined. Define the key for this EntityType.
看了3 different approach to persist value object in database
我是否应该手动实施上述方法之一来持久化
ValueObject
(如果是,那么一些最佳实践)是什么?还是已经由ASP.NET Boilerplate Framework完成? 最佳答案
当使用Value对象时,不应在Employee对象的Nationality属性上使用virtual。删除虚拟关键字。那应该解决它。仅在引用实体类型时使用虚拟。您也可以在Nationality.Name属性上摆脱虚拟。
关于c# - 使用ASP.NET Boilerplate将ValueObject存储在数据库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42884921/