没有PK不能定义表

时间:2018-09-13 19:26:24

标签: c# asp.net entity-framework asp.net-core

我有一个名为AspNetUsers的表,这是AspNetCore.Identity创建的默认表,我创建了一个名为User的类,该类继承了IdentityUser并在{{ 1}}:

AspNetUsers

然后,我创建了另一个名为public class User : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public DateTime BirthDate { get; set; } public string LockoutMessage { get; set; } public string SessionId { get; set; } public virtual UserDetails UserDetail { get; set; } } 的类,在此表中不需要UserDetails,因为在PK中,我需要存储{{ 1}},即UserDetails表:

User

现在,如果我取消注释AspNetUsers属性,迁移将很好地进行,但是我不需要public class UserDetails { //public string Id { get; set; } public string Biography { get; set; } public string Country { get; set; } public string FacebookLink { get; set; } public string TwitterLink { get; set; } public string SkypeLink { get; set; } public string UserId { get; set; } public virtual User User { get; set; } } ,因此我注释了该属性并执行以下命令:

Id

在我告诉Id的{​​{1}}类内部,以在add-migration Initial-Migration -context DemoAppContext update-database 上实现DemoAppContext

EF

FK命令之后,出现此错误:

  

实体类型“ UserDetails”需要定义主键。

正如我说的,如果我注释掉UserDetails一切正常,但是我不需要public class DemoAppContext : IdentityDbContext<User> { public DemoAppContext(DbContextOptions<DemoAppContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.Entity<User>(entity => { entity.HasOne(d => d.UserDetail) .WithOne(p => p.User) .HasForeignKey<UserDetails>(x => x.UserId); }); } public DbSet<UserDetails> UserDetails { get; set; } } 上的Add-Migration

0 个答案:

没有答案