2014-11-03 71 views
0

我打算为我的项目使用实体框架,但它可能会改变,所以我决定抽象该层。工作单元与实体框架

我想要一个实现IUOW的类,我可以传递给我的存储库,这样所有的db调用都在一个事务中完成。

现在,我在网上看到的每个例子,在实现IUOW的类中都有dbContext,是不是它是一个约束,我需要dbContext对象,如果我想创建只调用存储过程的存储库,该怎么办。那么我将不会有dbContext

http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

回答

0

我明白,你应该创建一个接口(IPersistence ... IData的,财产以后这样的),并用它的DbContext实现它只是它实现的EntityFramework类的东西可视电话(EntityPersistence:IPersistence) 。我想你可以看看这个例子:https://codereview.stackexchange.com/questions/47879/unit-of-work-and-repository-with-entity-framework-6

你是什么意思的“所有数据库调用”是在一个事务中做出的?据我所知,dbContexts试图在一个事务中完成所有操作。但是如果你需要额外的封装,我会考虑使用TransactionScope。有了这个,您可以轻松地通过一个事务跨越多个层次来处理应用程序,处理错误等(请参阅这些文章:http://msdn.microsoft.com/en-us/data/dn456843.aspx