gpt4 book ai didi

wpf - Linq 数据上下文和 "unit of work"

转载 作者:行者123 更新时间:2023-12-02 14:38:20 28 4
gpt4 key购买 nike

现在 Linq 中的流行词是“工作单元”。如“仅在一个工作单元中保留数据上下文”,然后销毁它。

我对此有几个问题。

  1. 我正在创建一个胖客户端 WPF应用。因此,我的数据上下文需要跟踪当前屏幕上用户可用的实例化对象的整个网络。我什么时候可以销毁我的数据上下文?
  2. 随着时间的推移,我根据用户的操作及其与第一个数据上下文的对象的交互构建一个 linq 查询。如何创建新的 DataContext 并在新的 Context 上执行查询?

我希望我说得清楚。谢谢

最佳答案

工作单元仅在一个工作单元中保留数据上下文不同。

工作单元是一种设计模式,描述如何以抽象方式表示事务。实际上只有创建、更新和删除 (CUD) 操作才需要它。

一种理念是 UoW 用于所有 CUD 操作,而只读存储库用于读取操作。

无论如何,我都建议将对象生命周期与 UoW 或存储库使用解耦。使用依赖注入(inject) (DI) 将两者注入(inject)到您的消费服务中,并让 DI 容器管理两者的生命周期。

在 Web 应用程序中,我的经验是对象上下文应该仅在单个请求(每个请求的生命周期)内保持事件状态。另一方面,对于像您所描述的那样的富客户端,使其长时间保持事件状态可能会更有效(单例生命周期)。

通过让 DI 容器管理对象上下文的生命周期,您不必将自己束缚于一种特定的选择。

关于wpf - Linq 数据上下文和 "unit of work",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2028657/

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