小编Chr*_*Hvd的帖子

为对象工厂提供数据库上下文

当我在代码中使用工厂模式时,我总是问自己一个问题(C#,但它适用于我认为的任何语言)。

我有一个“服务”,负责与我的数据库交互,对对象进行操作并与我的对象模型交互。

该服务有时使用工厂来委托对象的实例化。但是这个工厂显然需要自己与数据库交互才能正确实例化我的对象。例如,将数据库上下文传递给 Create 方法是好还是坏做法?

像这样 :

var myNewObject = MyFactory.Create(myDatabaseContext);
Run Code Online (Sandbox Code Playgroud)

另一种方法是让服务始终是唯一与数据库对话的服务。

var myNewObject = MyFactory.Create();
var extraProperty = myDatabaseContext.Get(something);
myNewObject.extraProp = extraProperty;
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

c# design-patterns entity-framework factory-pattern dbcontext

4
推荐指数
1
解决办法
6598
查看次数