我计划在我的项目中使用实体框架,但它可能会改变,所以我决定抽象层。
我想要一个实现IUOW的类,我可以将它传递给我的存储库,这样所有的db调用都可以在一个事务中完成。
现在我在net上看到的每一个例子,都有dbContext在类中实现了IUOW,这不是一个约束吗,我需要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
发布于 2014-11-04 02:59:54
我知道你应该创建一个接口(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)
https://stackoverflow.com/questions/26720782
复制相似问题