2013-07-11 51 views
0

由於EF 5.0已經實現了UnitOfWork模式,因此我希望它不是創建自己的IUnitOfWork類來維護事務。但我在互聯網上找到的大多數例子都是直接使用Separate UnitOfWork而不是EF。EntityFramework 5.0與CastleWindsor

我試圖使用IoC(城堡溫莎)來實現這一點。您能否提供一些樣例或方向來實現這一點。提前

感謝

西

回答

0

你沒有提供有關當前溫莎設置或什麼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

+0

感謝Kellyb,我有一個後端SQL Server,所以如果我做我的dbContext的IUnitOfwork container.Register它會工作嗎?順便說一句,我將遵循數據庫的第一種方法。 – Sai