entity-framework - Entity Framework 工作单元

标签 entity-framework repository-pattern unit-of-work

我在 EF 4 中使用 UnitOfWork 模式,只是想知道 EFUnitOfWork 的实现应该在哪里?它应该存在于存储库层中吗?我在域层中拥有所有接口(interface)。这听起来正确吗?

我正在使用 Ninject 通过 IUnitOfWork 注入(inject)存储库。

我想这真的没关系,因为您不会真正测试您的 EF 特定存储库,对吧?

另一种选择是让它存在于 EF 模型和上下文所在的数据层中。

通过将它放在存储库层中,该层现在需要对 System.Data.Entity 的引用。坏还是好?

最佳答案

在 DDD 之后,您通常需要在您的解决方案中使用 ProjectName.Core 项目。该项目的结构如下:

  • ProjectName.Core -> 存储库(全部
    您的存储库接口(interface))
  • ProjectName.Core -> 域模型
  • ProjectName.Core -> 基础设施 -> IUnitOfWork(uow 接口(interface))
  • ProjectName.Core -> Infrastructure -> DtatAccess(存储库实现和所有
    数据库相关文件,包括 uow 实现)

  • 有时,如果项目足够大,我会在我的解决方案中再添加一个名为 ProjectName.Infrastructure.DataAccess 的项目,并将所有 DataAccess 实现放在该项目中。

    关于entity-framework - Entity Framework 工作单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227777/

    相关文章:

    c# - Entity Framework 6 FluentApi 一对一关系配置

    repository-pattern - 这是使用 petapoco 的工作单元和存储库模式(带有事务)的糟糕或错误设计/实现吗

    nhibernate - ServiceStack 和 NHibernate 工作单元模式

    c# - 如何填充 GridView 异步

    entity-framework - 扩展 Entity Framework 模型

    C#/EF 和存储库模式 : Where to put the ObjectContext in a solution with multiple repositories?

    c# - 存储库测试最大限度地减少重复

    c# - 在树结构中使用数据模型实现存储库模式

    c# - 具有 UnitOfWork 模式的通用存储库模式

    entity-framework - 好的 Entity Framework 示例应用程序?