2013-03-28 63 views
1

我们有一个使用Entity Framework 5创建,用于创建,编辑和删除数据的系统,但是我们遇到的问题是有时EF太慢或者根本无法实现使用实体框架(根据参与数据库中的某些组的用户为表创建数据的视图等),并且我们不得不使用存储过程来更新数据。实体框架和ADO.NET与工作单元模式

但是,我们已经陷入了一个问题,那就是我们必须将更改保存到EF中,以便将数据存入数据库然后调用存储过程,所以我们不能使用ITransactionScope,因为它始终提升为分布式事务和/或在交易期间锁定表格以供选择。

我们还试图引入一个DomainEvents模式,它会在保存更改后对事件进行排队并将其引发,以便我们获得数据库中所需的数据,但最终可能会导致第一部分成功,第二部分失败。

有没有什么好的方法可以解决这个问题,或者我们是否需要彻底摆脱这种情况下的EF呢?

回答

1

我有类似的情况。后来我把这个过程分解成小的过程,只使用EF,并且使每个小过程简短。即使总体时间更长,但系统维护和扩展也更容易。另外我最小化连接,只更新实体本身,禁用EF的AutoDetectChangesEnabled和ValidateOnSaveEnabled。
有时候,如果你用不同的方式看你的问题,你可能有更好的解决方案。 祝你好运!