簡體   English   中英

如何將DbContext與IdentityDbContext合並

[英]How to merge DbContext with IdentityDbContext

我試圖擺脫代碼優先的遷移。

問題在於AspNetUsers正在擴展IdentityUser。 結果,當我嘗試使用DbContext時,出現以下錯誤。

  • EntityType'IdentityUserLogin'沒有定義鍵。 定義此EntityType的鍵。
  • EntityType'IdentityUserRole'沒有定義鍵。 定義此EntityType的鍵。

我想將AspNetUsers用於兩個目的:

  1. 身份管理。
  2. 從數據庫中查詢用戶。

是否可以在不必使用IdentityDbContext的情況下走這條路線?

public class MyEntities : DbContext
{
     public DbSet<AspNetUsers> AspNetUsers { get; set; }
}

您不需要添加

public DbSet<AspNetUsers> AspNetUsers { get; set; }

從IdentityDbContext繼承上下文以僅具有一個上下文

public class MyEntities : IdentityDbContext<AspNetUsers>

也不要忘記將UserManager設置為與AspNetUsers一起使用MyEntities上下文

身份上下文從DBContext繼承。 因此,只要您自己的數據庫上下文從身份上下文繼承,就足夠了。 類似於以下內容:

public class MyDbContext : IdentityContext {}

您可以避免使用IdentityDbContext,但需要在DbContext類中的OnModelCreating方法中自行設置映射。

但是,如果您使用的是SignInManager等。我建議您使用IdentityDbContext。 您不受使用代碼優先遷移的約束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM