ASP.NET与ApplicationUser的可选1:1关系(Identity 2.0)

时间:2017-01-04 12:11:14

标签: c# asp.net asp.net-mvc entity-framework ef-fluent-api

我有一个Trainee,必须连接到ApplicationUserTrainee模型包含与实际用户帐户无关的字段,但需要从FirstName获取LastNameApplicationUser,因为用户可能不会必须是实习生

但是,尽管在Trainee

中为用户定义了我的外键,但我收到了这些错误
  

在模型生成期间检测到一个或多个验证错误:

     

MyApp.Models.IdentityUserLogin :: EntityType   'IdentityUserLogin'没有定义键。为此定义密钥   的EntityType。 MyApp.Models.IdentityUserRole :: EntityType   'IdentityUserRole'没有定义键。为此定义密钥   的EntityType ...

...等等。无论如何,这是我目前的架构:

实习生模特:

public class Trainee
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string TraineeId { get; set; }

    // other fields, not relevant
    [ForeignKey("TraineeId")]
    public virtual ApplicationUser User { get; set; }
}

ApplicationUser和context:

    public class ApplicationUser : IdentityUser
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }

        // other arbitrary fields
    }

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("SARSDbContext")
        {
        }
    }

数据上下文和模型构建器:

public class SARSDbContext : DbContext
{
    public DbSet<Trainee> Trainees { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Trainee>()
                    .HasRequired(c => c.User);
    }
}

我查看了herehere以获取信息,但我找不到解决方案。

0 个答案:

没有答案