Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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# 基于工作单元模式的实体框架和ADO.NET_C#_Entity Framework_Transactions_Domain Events - Fatal编程技术网

C# 基于工作单元模式的实体框架和ADO.NET

C# 基于工作单元模式的实体框架和ADO.NET,c#,entity-framework,transactions,domain-events,C#,Entity Framework,Transactions,Domain Events,我们有一个使用Entity Framework 5构建的系统,用于创建、编辑和删除数据,但我们存在的问题是,有时候EF太慢,或者根本不可能使用Entity Framework(基于参与数据库中某些组的用户为表构建数据的视图,等等)我们必须使用存储过程来更新数据 然而,我们遇到了一个问题,我们必须保存对EF的更改,以便将数据保存在数据库中,然后调用存储过程,我们不能使用ITransactionScope,因为它总是提升到分布式事务,并且/或者在事务期间锁定表以进行选择 我们还试图引入一种Domai

我们有一个使用Entity Framework 5构建的系统,用于创建、编辑和删除数据,但我们存在的问题是,有时候EF太慢,或者根本不可能使用Entity Framework(基于参与数据库中某些组的用户为表构建数据的视图,等等)我们必须使用存储过程来更新数据

然而,我们遇到了一个问题,我们必须保存对EF的更改,以便将数据保存在数据库中,然后调用存储过程,我们不能使用ITransactionScope,因为它总是提升到分布式事务,并且/或者在事务期间锁定表以进行选择

我们还试图引入一种DomainEvents模式,它将对事件进行排队,并在保存更改后引发事件,这样我们就可以在数据库中获得所需的数据,但这样一来,第一部分成功,第二部分失败


有什么好的方法来处理这个问题吗?或者我们需要完全离开EF来解决这个问题吗?

我也有类似的情况。后来,我将流程分解为几个小流程,只使用EF,并缩短每个小流程。即使总体时间更长,但系统更易于维护和扩展。我还最小化了连接,只更新实体本身,禁用EF的AutoDetectChangesEnabled和ValidateOnSaveEnabled。
有时候,如果你用不同的方式看待你的问题,你可能会有更好的解决办法。
祝你好运

我也有类似的情况。后来,我将流程分解为几个小流程,只使用EF,并缩短每个小流程。即使总体时间更长,但系统更易于维护和扩展。我还最小化了连接,只更新实体本身,禁用EF的AutoDetectChangesEnabled和ValidateOnSaveEnabled。
有时候,如果你用不同的方式看待你的问题,你可能会有更好的解决办法。 祝你好运