Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EF6 DbContext是否默认使用UOW和存储库模式实现_Entity Framework_Entity Framework 6_Repository Pattern_Unit Of Work - Fatal编程技术网

Entity framework EF6 DbContext是否默认使用UOW和存储库模式实现

Entity framework EF6 DbContext是否默认使用UOW和存储库模式实现,entity-framework,entity-framework-6,repository-pattern,unit-of-work,Entity Framework,Entity Framework 6,Repository Pattern,Unit Of Work,我试图找出EF的工作单元模式。在一些地方我读到EF6中的DBcontext默认带有UOW和Repository 我现在有点困惑。我是否需要显式地为EF6的dbcontext编写UOW,或者我可以将其用作dbcontext.table.Commit(),它也会这样做。是的,实体框架已经有了UOW和存储库模式。然而,当我们显式地在实体框架上编写UOW和存储库时,它将在默认实体框架模型上再创建一层,我们通常这样做,因为将来我们可能会将我们的ORM(实体框架)更改为其他的,并且可能没有UOW和存储库模式

我试图找出EF的工作单元模式。在一些地方我读到EF6中的DBcontext默认带有UOW和Repository


我现在有点困惑。我是否需要显式地为EF6的dbcontext编写UOW,或者我可以将其用作dbcontext.table.Commit(),它也会这样做。

是的,实体框架已经有了UOW和存储库模式。然而,当我们显式地在实体框架上编写UOW和存储库时,它将在默认实体框架模型上再创建一层,我们通常这样做,因为将来我们可能会将我们的ORM(实体框架)更改为其他的,并且可能没有UOW和存储库模式

如果您计划单元测试
UOW
Repository
实现将具有更高的可测试性+1,感谢您的评论。现在一切都有意义了。但是,为了使UOW和存储库模式独立于ORM,您在服务层的项目中在哪里实现它,或者在实现服务和数据的地方有单独的层。这是一个虚假的抽象。您很快就会看到,您的独立UoW和repo将展示各种各样的特性(参数、方法),表明EF处于保护之下。举个例子: