由於EF 5.0已經實現了UnitOfWork模式,因此我希望它不是創建自己的IUnitOfWork類來維護事務。但我在互聯網上找到的大多數例子都是直接使用Separate UnitOfWork而不是EF。EntityFramework 5.0與CastleWindsor
我試圖使用IoC(城堡溫莎)來實現這一點。您能否提供一些樣例或方向來實現這一點。提前
感謝
西
由於EF 5.0已經實現了UnitOfWork模式,因此我希望它不是創建自己的IUnitOfWork類來維護事務。但我在互聯網上找到的大多數例子都是直接使用Separate UnitOfWork而不是EF。EntityFramework 5.0與CastleWindsor
我試圖使用IoC(城堡溫莎)來實現這一點。您能否提供一些樣例或方向來實現這一點。提前
感謝
西
你沒有提供有關當前溫莎設置或什麼UOW看起來像EF5(我不使用它)的任何細節,但在此基礎上[1 ]看起來他們有一個在其上下文類中實現的IUnitOfWork接口。因此,這似乎是相當簡單的利用由溫莎驅動的依賴注入模式。您首先需要註冊IUnitOfWork接口和容器的實現。 Windsor有多種註冊組件的方法。我更喜歡安裝[2] ...所以你會像這樣結束:
public class YourInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Component.For<IUnitOfWork>().ImplementedBy<YourDbContext>());
}
}
那麼你就這個注入到你的應用程序的服務以某種方式,如:
public class YourService
{
public YourService(IUnitOfWork uow)
{
// rock out
}
}
[ 1] http://dumians.wordpress.com/2013/04/13/how-to-use-repository-and-unit-of-work-patterns-with-entity-framework/ [2] http://docs.castleproject.org/Default.aspx?Page=Installers&NS=Windsor&AspxAutoDetectCookieSupport=1
感謝Kellyb,我有一個後端SQL Server,所以如果我做我的dbContext的IUnitOfwork container.Register它會工作嗎?順便說一句,我將遵循數據庫的第一種方法。 – Sai