Any*_*are 8 c# orm domain-driven-design entity-framework repository-pattern
根据MSDN的DbSet:
DbSet<TEntity> Class
Run Code Online (Sandbox Code Playgroud)
A
DbSet represents the collection of all entities in the context,或者可以从数据库查询给定类型.DbSet对象是使用DbContext.Set方法从DbContext创建的.
并根据MSDN的DbContext:
DbContext Class
Run Code Online (Sandbox Code Playgroud)
甲
DbContext instance represents a combination of the Unit Of Work andRepository patterns,使得它可以用来从数据库和组查询然后将被写回到存储作为一个单元一起变化.DbContext在概念上类似于ObjectContext.
这样就可以EF使用repository pattern和UOW内部.
DbSet <---->存储库
DbContext <---->工作单位
为什么我要在EF的顶部构建一个包含工作单元的存储库模式?
为什么我应该在我的EF顶部构建一个具有工作单元的存储库模式?
取决于您希望如何管理依赖项.
如果Entity Framework是您的抽象层而数据库本身是依赖关系,那么Entity Framework确实已经提供了您的存储库和工作单元.权衡是您的域依赖于实体框架.只要这种依赖性是可以接受的,你就是好的.
另一方面,如果您希望将Entity Framework本身视为可以在不更改域代码的情况下进行交换的依赖项,那么您需要创建一个抽象作为包装器的包装器.
基本上,这一切都归结为你绘制什么是或不是"外部依赖"的线.对于某些项目来说无关紧要,对某些项目而言,它是物理数据库,对某些项目而言,它是数据访问框架等.
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |