gpt4 book ai didi

domain-driven-design - DDD,值对象和ORM

转载 作者:行者123 更新时间:2023-12-03 22:47:31 25 4
gpt4 key购买 nike

值对象没有身份。 ORM需要标识来更新数据库。

如何欺骗ORM?

(因为将ORM放在不同的程序集中并且将其移动到同一程序集,所以将值对象的ID标记为内部无效)。

提前致谢。

最佳答案

就我对DDD的理解而言,值对象只是对实体进行分区的一种方法。如果值对象应使用ID存储在数据库中,则它不是值对象。

例:

域模型如下所示(C#):

public class Customer : Entity
{
public Guid CustomerID { get; }

public string LastName { get; set; }

public Address HomeAddress { get; set; }
}

public class Address : ValueObject
{
public string Street { get; set; }

public string City { get; set; }

public string ZipCode { get; set; }
}


相应的数据库表如下所示(伪SQL):

CREATE TABLE Customers
(
CustomerID,

LastName,

HomeAddress_Street,

HomeAddress_City,

HomeAddress_ZipCode,
)


要将地址存储在单独的表中,可以使它成为具有ID的实体。

关于domain-driven-design - DDD,值对象和ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/949320/

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