身份要求我使用它來創建一個數據庫方面:app.CreatePerOwinContext和共享數據庫方面
app.CreatePerOwinContext(EFDbContext.Create);
所以我需要得到微軟統一IOC正確。
我遇到的問題是我意外做了2個數據庫上下文。一個用於我應用程序中的其他所有內容,另一個用於用戶內容。我開始在錯誤的上下文中爲用戶的東西編寫函數,並導致錯誤。
所以我決定用我的EFDbContext一輩子經理:
// Database context
container.RegisterType<EFDbContext>(new PerThreadLifetimeManager());
// Microsoft identity stuff
container.RegisterType<ApplicationSignInManager>();
container.RegisterType<ApplicationUserManager>();
container.RegisterType<IAuthenticationManager>(
new InjectionFactory(c => HttpContext.Current.GetOwinContext().Authentication));
container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(
new InjectionConstructor(typeof(EFDbContext)));
我想知道這是否會造成未來的問題?
編輯:
我發現,在身份異步的東西可能已經造成的問題與此設置...
我現在已經使用HierarchicalLifetimeManager
,它讀起來就像那種我需要的東西...仍然不確定我是否會遇到任何問題?
啊,剛剛發現奇怪的錯誤發生,並意識到這是因爲身份的東西使用大量的異步調用。這會干擾你所說的話題嗎? – Jimmyt1988
HierarchicalLifetimeManager似乎正在工作......對此有任何負面影響? – Jimmyt1988