實體類型&#39;Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin <string> &#39;需要定義一個密鑰

asp.net-identity asp.net-mvc c# entity-framework-core

我有一個使用EF7的ASP.NET5 MVC應用程序。它到目前為止工作得很好,我能夠在數據庫中添加遷移和持久數據。現在,在將Identity添加到我的數據層項目後,我在嘗試添加新遷移時遇到此錯誤:

實體類型'Microsoft.AspNet.Identity.EntityFramework.IdentityUserLogin'需要定義一個鍵

我的上下文源自IdentityDbContext:

public class ASSWebApiContext : IdentityDbContext<AppUser>

AppUser類:

public class ASSWebApiContext : IdentityDbContext<AppUser>

project.json

public class ASSWebApiContext : IdentityDbContext<AppUser>

我在這裡所做的就是加載相關的新軟件包:“Microsoft.AspNet.Identity.EntityFramework”:“3.0.0-rc1-final”,添加了AppUser類 - 沒有別的。我有一個類似的項目使用beta-8使用完全相同的模式,它沒有問題。 beta-8和rc-1之間是否有任何相關變化?

謝謝!

以下是ASSWebApiContext的一部分。對於大多數具有DbSet的實體,都有一個modelBuilder.Entity。所以這個文件還有很長一段時間......

public class ASSWebApiContext : IdentityDbContext<AppUser>

一般承認的答案

基本上認同表的鍵映射OnModelCreating的方法IdentityDbContext如果這個方法不叫,你最終會得到你得到了錯誤。如果您從IdentityDbContext派生並且像在代碼中一樣提供自己的OnModelCreating定義,則不會調用此方法。使用此設置,您必須使用base.OnModelCreating語句顯式調用IdentityDbContextOnModelCreating方法。 這個答案還討論了我在這裡發布的選項




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因