【发布时间】:2014-11-27 15:40:49
【问题描述】:
我对 Entity Framework 还是很陌生,仍然在努力解决它。这么多不同的示例和解释,我不知道该怎么办?
我有几个问题:
在我当前的应用程序中,我使用了一个由以下组成的模式:
- 存储库模式
- (位于)工作单元
对于每个 from ,我声明一个新的工作单元。所以当我进行 Savechanges 时,只有相关项目受到影响。
对于复杂的业务逻辑,我在 Repository 中为每个类编写我的方法 例如:
- 一种方法:从一个库存位置移除一件物品,将其移动到另一个位置,然后减少旧位置的数量,等等... - 或者更复杂的作业,从不同的表读取并写入许多表。
但是最近我发现 Entity Framework 6.0 :
- DbContext = 工作单元
- DbSet 相当于 REPOSITORY
所以问题是:
- 我应该使用一个 DBCONTEXT,还是为每个表单/操作声明一个新的,以便事务保留在本地上下文中(表单/操作 =
- 如何替换存储库中的方法?
谢谢
【问题讨论】:
-
DbSet 不是存储库,除非 EF 可以“按原样”使用您的域对象。即使这样,它公开 IQueryable 的事实也违背了存储库模式的目的。简而言之,Repository 是一个原则,它的实现不是 DbSet,但实现可以使用 EF 作为内部细节。
-
谢谢,那是我弄错了,抱歉显示正确的路径。
标签: entity-framework entity-framework-6 repository-pattern