0
我已經設置了我的項目以使用實體框架。這是數據庫第一種方法。設置EF與Windsor Castle一起工作
對於IoC,我使用Castle Windsor,並且該項目設置爲注入所有依賴關係。 我的問題是,是否需要爲我的EF實體設置Castle來做同樣的事情?我怎樣才能做到這一點?
我已經設置了我的項目以使用實體框架。這是數據庫第一種方法。設置EF與Windsor Castle一起工作
對於IoC,我使用Castle Windsor,並且該項目設置爲注入所有依賴關係。 我的問題是,是否需要爲我的EF實體設置Castle來做同樣的事情?我怎樣才能做到這一點?
有許多方法可以在Castle中使用Entity Framework。我建議你採用Unit of Work和Repository模式。 DbContext提供了工作單元的大部分功能,而DbSet同樣提供了大部分存儲庫所需的功能。
您將遇到的主要問題是EF不理解模型對象的依賴注入。 EF在分配模型對象時總是使用空的構造函數,這意味着我們沒有機會對模型對象進行依賴注入。我們已經通過使用對象物化勾上的DbContext解決此得到:
((IObjectContextAdapter)this).ObjectContext.ObjectMaterialized += EFObjectLoadInitializer;
的EFObjectLoadInitializer然後注入內核到模型對象(我們所有的模型對象必須支持IInjectKernel接口)。在注入之後,內核被用來解決任何其他的依賴。它不是很乾淨,但它運行良好,並使我們能夠利用我們與溫莎建立的其他基礎設施。
任何想法,任何人? Plz幫助! – annantDev 2012-07-06 15:43:06
你問你是否將你的道實體對象註冊到城堡容器中?簡短的回答是你不需要它,你爲什麼? – Eduard 2012-07-11 11:13:06