ASP.NET Необязательные отношения 1:1 с ApplicationUser (Identity 2.0)
У меня есть Trainee
который должен подключиться к ApplicationUser
, Trainee
Модель имеет поля, которые не относятся к фактической учетной записи пользователя, но должны иметь такие вещи, как FirstName
, LastName
от ApplicationUser
как пользователь не обязательно должен быть стажером.
Тем не менее, я получаю эти ошибки, несмотря на определение моего внешнего ключа для пользователя в 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 и контекст:
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);
}
}