gpt4 book ai didi

c# - 使用 ASP.NET 样板将 ValueObject 存储在数据库中

转载 作者:行者123 更新时间:2023-11-30 12:40:03 26 4
gpt4 key购买 nike

尝试使用 ASP.NET 样板和 Entity Framework 实现 DDD

员工对象

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。删除虚拟关键字。那应该解决它。仅当您引用实体类型时才使用 Virtual。您也可以去掉 Nationality.Name 属性上的 virtual。

关于c# - 使用 ASP.NET 样板将 ValueObject 存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42884921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com