Entity framework 4 通用存储库应直接使用工作单元或DbContext

Entity framework 4 通用存储库应直接使用工作单元或DbContext,entity-framework-4,repository-pattern,unit-of-work,Entity Framework 4,Repository Pattern,Unit Of Work,当我将通用存储库与实体框架一起使用时,我是否需要使用工作单元,因为据我所知,多个存储库之间没有坐标。或者让通用存储库直接在DbContext上工作,因为不需要UOW 哪一种是最佳实践:为每个实体类型使用通用存储库或实现存储库类 我不知道您指的是哪个通用存储库,但下面是我使用通用存储库的经验 通常,EntityFramework不需要工作单元或存储库。EntityFramework完成了这一切 然而,在我的第一个EF项目中,我发现自己创建了一个工厂类,分发并保存所有实体。该类没有完成工作单元的全部

当我将通用存储库与实体框架一起使用时,我是否需要使用工作单元,因为据我所知,多个存储库之间没有坐标。或者让通用存储库直接在DbContext上工作,因为不需要UOW

  • 哪一种是最佳实践:为每个实体类型使用通用存储库或实现存储库类


  • 我不知道您指的是哪个通用存储库,但下面是我使用通用存储库的经验

    通常,EntityFramework不需要工作单元或存储库。EntityFramework完成了这一切

    然而,在我的第一个EF项目中,我发现自己创建了一个工厂类,分发并保存所有实体。该类没有完成工作单元的全部工作,也没有像存储库那样提供标准化的接口。这个庞大的班级需要一些结构。因此,我个人的建议是反对所有实体都使用一个大型存储库,这个存储库将不断增长,并且维护起来将越来越困难。如果你想到这样一个类,你最好使用EF

    在第二个项目中,我使用UnitOfWork和通用存储库。这更符合我的目的。执行保存操作的一个工作单元,在一个保存操作中保存所有更改,并为所有存储库使用相同的界面。我只需更改工作单元以适应新实体的两个类。工作单元还隐藏了dbContext的使用,我认为这会导致难看的代码

    我不使用花哨的unitofwork或通用存储库(我在:)只需要在实现中提供一些指导


    我同意格特的直接回答:这完全是个人偏好。

    从定义上讲,没有一种模式比另一种模式更好。这一切都取决于功能和技术要求以及个人喜好,而我们对此一无所知。换言之,这个问题是无法回答的。您最好研究UoW、通用存储库与EF一起使用的帖子,并对您的情况的利弊有一个大致的了解。