2016-12-26 36 views
0

我使用IdentityServer作爲授權服務器爲我的API。它是一個單獨的ASP.NET Core Identity + IdentityServer4項目,用於處理用戶登錄/登錄/註冊等。我的「buisness」API位於單獨的ASP.NET Core Web API項目中。分離標識表和業務表DbContexts同時共享外鍵

我使用實體框架的核心代碼優先遷移來產生這兩個項目我的數據庫表。

的驗證服務器項目具有所有的默認用戶身份的表其ApplicationDbContext(默認身份的DbContext)內,如你所期望的。

的樓內設有商務API服務器,但是,需要有自己的表。大多數這些表需要有一個UserId外鍵(例如,在待辦事項應用程序中,API將具有待辦事項項目表,其中用戶和待辦事項項目具有一對多FK關係)。這意味着API服務器有我自己定義的DbContexts,大多數DbSets與用戶有外鍵關係(ApplicationUser)。

我將如何設置? EF Core似乎不支持跨多個DbContext的FK關係。此外,這樣做,你必須注入上下文類兩次(每個項目一次),這需要重複我的連接字符串。我知道我可以讓我的Auth服務器項目也處理我的業務表(像添加更多DbSets一樣簡單),但我希望將它們分開。有沒有一種乾淨的,習慣性的做法,或者我想這是錯誤的方式?

回答

0

我做,這是一個用戶表添加到業務的DbContext有當用戶在身份的DbContext註冊插入一排的方式。該用戶行具有對在Indentity DbContext中創建的Id的引用,但可用作外鍵,因爲它與Business DbContext中的其他表位於同一個DbContext中。

相關問題