我在WPF应用程序中使用Prism框架和EF。
视图模型:
- 保留由Unity容器传递的服务引用。
服务:
- 提供与数据相关的“高级”操作 - 保留仓储的引用,仓储提供数据库的基本CRUD操作(每个仓储一个单独表)。
仓储:
- 仓储中的每个方法都使用“using”模式,在其中使用短暂的对象上下文。 - 当对象上下文被处理后,无法再使用映射的属性。我的数据库模型很复杂(许多相关表格),检索数据时需要很多.Include()调用,导致代码难以维护。
经过阅读多个线程,我发现“工作单元”模式可能是我需要的。
我的问题是:
- 谁保留工作单元的引用(因此也包含上下文)? - 如果我选择每个视图的上下文方法,那么ViewModel应该具有上下文引用。然后,我如何将工作单元注入到服务中呢?或者应该在ViewModel中创建新的Service实例,并通过构造函数参数传递上下文?
视图模型:
- 保留由Unity容器传递的服务引用。
服务:
- 提供与数据相关的“高级”操作 - 保留仓储的引用,仓储提供数据库的基本CRUD操作(每个仓储一个单独表)。
仓储:
- 仓储中的每个方法都使用“using”模式,在其中使用短暂的对象上下文。 - 当对象上下文被处理后,无法再使用映射的属性。我的数据库模型很复杂(许多相关表格),检索数据时需要很多.Include()调用,导致代码难以维护。
经过阅读多个线程,我发现“工作单元”模式可能是我需要的。
我的问题是:
- 谁保留工作单元的引用(因此也包含上下文)? - 如果我选择每个视图的上下文方法,那么ViewModel应该具有上下文引用。然后,我如何将工作单元注入到服务中呢?或者应该在ViewModel中创建新的Service实例,并通过构造函数参数传递上下文?