2014-11-03 88 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