gpt4 book ai didi

c# - 我应该如何处理引用实体的持久性?

转载 作者:行者123 更新时间:2023-11-30 14:28:42 25 4
gpt4 key购买 nike

我正在使用 Entity Framework 和 DDD。

如果我在两个实体之间有引用,我应该如何处理持久性?更新级联吗?

假设雇主直接引用了他们的经理。

如果我更改了 Employee.Manager.Name 并保存了 Employee,Manager 的姓名是否会更改?

最佳答案

从 DDD 的角度来看,从 EmployeeManager 的任何链接都应该仅通过引用 id(假设 Managers不是 Employee 聚合根的一部分,Manager 本身就是一个聚合根。

本质上,您的属性 Employee.ManagerId 应该返回一个 ID,允许您检索该 EmployeeManager

这将与 Entity Framework 开箱即用的许多“优点”背道而驰,但这对于 DDD 来说很常见。建议围绕业务领域而不是数据库实现来设计领域模型。

就我个人而言,我发现使用 EF 实体作为我的领域模型并不适合我练习 DDD。诸如延迟加载导航属性之类的事情与良好的 DDD 实践相矛盾。这些天我倾向于在我自己的项目中使用文档数据库,但是当我必须使用 SQL 时,我将 EF 实体限制在我的持久层并且编码我的存储库以从我的域模型返回非 EF 实体。

关于c# - 我应该如何处理引用实体的持久性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28815732/

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