Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
C# 使用repository patren处理EF5事务?_C#_.net_Entity Framework_Entity Framework 5 - Fatal编程技术网

C# 使用repository patren处理EF5事务?

C# 使用repository patren处理EF5事务?,c#,.net,entity-framework,entity-framework-5,C#,.net,Entity Framework,Entity Framework 5,在使用EF时,使用了存储库和工作单元模式。我之所以使用工作单元,是因为我需要使用类似事务的机制来处理多个实体 我阅读了EF内部实现的工作单元模式,以便它能够处理事务。我正在使用通用存储库模式处理EF5。您能告诉我如何使用通用存储库使用EF5的现有事务支持吗?每次在DbContext上调用SaveChanges()时,您都有一个隐式事务,因此您的所有更改都会成功,或者都会失败。谢谢,这是否意味着您可以使用不同的存储库(Repository,Repository,Repository),如果我调用S

在使用EF时,使用了
存储库
工作单元
模式。我之所以使用
工作单元
,是因为我需要使用类似事务的机制来处理多个实体


我阅读了EF内部实现的工作单元模式,以便它能够处理事务。我正在使用通用存储库模式处理EF5。您能告诉我如何使用通用存储库使用EF5的现有事务支持吗?

每次在DbContext上调用SaveChanges()时,您都有一个隐式事务,因此您的所有更改都会成功,或者都会失败。

谢谢,这是否意味着您可以使用不同的存储库(Repository,Repository,Repository),如果我调用SaveChanges(),它将保存所有数据库集(Student,Treacher,School)的更改它将适用于所有CRUD操作?如果它们都适用于相同的底层ObjectContext/DbContext,那么是的,因此这取决于您何时创建新上下文的策略。但UoW模式背后的基本思想是,您可以在一个工作单元中对多个存储库进行更改,并一次性提交所有更改。