Мой пользовательский объект:
public class Order
{
[Key,Column(Order=0)]
public int OrderId { get; set; }
//Other properties
public string UserId { get; set; }
[ForeignKey("UserId")]
public virtual ApplicationUser User { get; set; }
}
Класс ApplicationUser:
public class ApplicationUser : IdentityUser
{
//one to many relation
public virtual List<Sandwich.Order>Order { get; set; }
public async Task<ClaimsIdentity>
GenerateUserIdentityAsync(UserManager<ApplicationUser> manager){..}
}
У меня есть два DbContexts (один по умолчанию для AppUser и один, который я создал):
public class ADbContext : DbContext
{
public ADbContext() : base("DefaultConnection")
{
}
public DbSet<Toppings> ToppingsDbset { get; set;}
//I had to comment the line below to in order to work with ToppingDBset but then I can't work with OrderDBSet
//public DbSet<Order> OrderDbSet { get; set; }
}
//Default AppDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Когда я запускаю его, просто работая с ApplicationDbContext, он работает нормально и создает следующую таблицу со всеми связями. введите описание изображения здесь
Моя проблема: когда я пытаюсь работать с ADbContext без комментариев public DbSet<Order> OrderDbSet { get; set; }
{"Во время обнаружения одной или нескольких ошибок проверкигенерация модели: \ r \ n \ r \ n.IdentityUserLogin:: EntityType 'IdentityUserLogin' не определен ключ. Определите ключ для этого EntityType. \ r \ n.IdentityUserRole:: EntityType 'IdentityUserRole' не определен ключ
Решения, которые я попробовал:
//Adding following method on ADbContext
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
}
Я пытаюсь создать все таблицы в одной базе данных. Я использую EF6.