我目前正在開發MVC4項目,如果Ninject向我的控制器注入UnitOfWork,我使用UnitOfWork + Generic Repository模式。MVC4,UnitOfWork + DI和SimpleAuthentication ..如何去耦?
我不喜歡VS2012 MVC4模板,因爲它直接使用數據庫訪問(例如db初始化)。
我的項目共分:
一個UI項目(mvc4應用程序),以Forms身份驗證
域項目(DB實體,該庫的的UnitOfWork接口和兩個UnifOfWork實現,一個與MOQ和一個EF;他們通過Ninject注入到UI控制器中)。
我看了看這個例子:
http://kevin-junghans.blogspot.it/2013/03/decoupling-simplemembership-from-your.html
與此相關的問題
SimpleMembership - anyone made it n-tier friendly?
現在我有一些問題:
如何在這裏注入我的UoW? WebSecurity類是靜態的,沒有構造器,它直接實例化UoW在db上執行活動...
我總是必須初始化WebMatrix以直接訪問數據庫?這段代碼:
public static void Register() { Database.SetInitializer<SecurityContext>(new InitSecurityDb()); SecurityContext context = new SecurityContext(); context.Database.Initialize(true); if (!WebMatrix.WebData.WebSecurity.Initialized) WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); }
休息,我去耦域..我怎樣才能讓WebSecurity使用我的UnitOfWork例如?最佳做法是什麼?
- 我怎麼能存儲更多的數據(例如,EmailAddress的等)和檢索,沒有進行數據庫查詢的每次我都來訪問用戶的個人資料?像舊的CustomPrincipal ... Custom principal in ASP.NET MVC
謝謝!
謝謝你的男人。現在聽起來有點乾淨了。我理解你的觀點,但註冊WebMatrix來初步化數據庫聽起來有點骯髒。我的用戶表是域的一部分,我通過UnitOfWork實現了域訪問。爲什麼WebMatrix不能使用我的DAL訪問用戶信息?爲什麼它應該「直接」連接到數據庫?我假設我使用Model-First方法,我的域不需要初始化......當然,這是我的場景。順便說一句,再次感謝你的回答! – 2013-03-28 10:16:01