gpt4 book ai didi

.net - Entity Framework 和应用程序架构(松耦合等)

转载 作者:行者123 更新时间:2023-12-02 09:02:26 26 4
gpt4 key购买 nike

我正在考虑在一个新项目中应用 Entity Framework ,因为我喜欢它的 OR/M-API 以及存储/概念模型映射功能(当然还有 Linq 和 Entity SQL)。

但是如果 UI 层和业务层都使用 EF 实体作为数据持有者,如何在 UI 层和业务层之间实现松耦合。如果我在实体驻留在 UI 中时将它们附加到其 ObjectContext,则 UI 可能会绕过业务层并直接连接到数据库。如果我在将实体传递到 UI 之前将它们与它们的 ObjectContext 分离,则不会进行更改跟踪,因此我必须“重播”业务层中的所有更改,以便将它们持久保存到数据库中(很难实现,尤其是使用亲子关系)。虽然我不希望业务层降级为“对象树持久引擎”,但在某些情况下拥有这种能力会很有帮助。

这当然也适用于其他 OR 映射器,但一些替代产品似乎具有更好的分离/附加机制。

最佳答案

“重播”更改比您想象的要容易。以下是您需要执行的操作的概要:

  1. 在分离实体实例并将其交给 UI 之前,存储实体实例的“原始”版本。
  2. 让 UI 完成它的任务。
  3. 当您想要将 UI 所做的更改保留到数据库时,请获取您存储的原始版本,并将其附加到 EntityContext。将 UI 返回的修改版本中的更改应用到此实例。现在保存更改。 Entity Framework 将处理三向合并。

关于.net - Entity Framework 和应用程序架构(松耦合等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/83153/

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