我最近決定在ASP.NET Core MVC開發的網站上實現ASP.NET Identity功能。EntityFrameworkCore Identity的繼承問題
讓我們快速瀏覽一下表和類話題:
public class User : IdentityUser
{
public string FirstName { get; set; }
public stirng LastName { get; set; }
public int CountryId { get; set; }
public Country Country { get; set; }
}
public class Country
{
public int Id { get; set; }
public string ISO { get; set; }
public string Name { get; set; }
}
的Country
類是有些無關緊要,但如果你想從User
類參考。
有了這個設置,我已經配置了我的數據庫環境是這樣的:
public class DatabaseContext : IdentityDbContext<User>
{
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<IdentityUser>.ToTable("User");
builder.Entity<IndentityRole>.ToTable("Roles");
builder.Entity<IdentityUserRole<string>>.ToTable("UserRoles");
builder.Entity<IdentityUserClaim<string>>.ToTable("UserClaims");
builder.Entity<IdentityUserLogin<string>>.ToTable("UserLogins");
}
}
我使用自定義表(更名)像這樣映射它們。
問題
現在,每當我跑我的項目,在第一次數據庫調用我做,我得到了以下錯誤:
The entity type 'User' should derive from 'IdentityUser' to reflect the hierarchy of the corresponding CLR types.
對我來說,這個錯誤說:我的類User
不從接口IdentityUser
繼承,我不太清楚爲什麼是這樣?很明顯,我的課User
是否繼承IdentityUser
?
任何可能的幫助,高度讚賞!
什麼是您的用戶類看起來像? –
我已經發布 – Detilium
我想你將不得不添加另一個IdentityUser類型的實體,因爲否則EF將無法將用戶存儲在數據庫中 - 它會將每個類分別存儲在層次結構中。 –