当使用2个DbContexts时,为什么EF试图添加一个只应该同时存在的关系?

时间:2016-11-03 16:54:02

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

我的应用程序中有2个DbContext个类。第一个是通常的ApplicationDbContext,它继承自IdentityDbContext<ApplicationUser>,它还包含一些链接到用户类的其他表,例如他们上传的内容等。

我的第二个DbContext类与应用程序的另一个区域相关,即组织俱乐部和活动。这称为ClubDbContext,并且继承自标准DbContext

当只有一个上下文时,确切的代码可以成功运行和迁移,但是,一旦我将俱乐部/活动/组织实体拆分为它自己的上下文ClubDbContext,当我运行代码或尝试添加时ClubDbContext的新迁移,我收到以下错误消息:

  

InvalidOperationException:无法确定“List”类型的导航属性“ApplicationUser.Content”所代表的关系。手动配置关系,或从模型中忽略此属性。

它所谈论的关系在ApplicationDbContext中定义如下:

builder.Entity<Content>()
    .HasOne(c => c.Author)
    .WithMany(up => up.Content)
    .HasForeignKey(c => c.AuthorId)
    .IsRequired(true);

它正在谈论的关系在ApplicationDbContext中指定,并且ApplicationUser或任何成员中没有提及ContentClubDbContext类班级......

在将单个上下文拆分为两个ApplicationDbContextClubDbContext之前,应用程序完美运行 - 所以问题必须在某个新的上下文中!我很茫然......有没有人知道为什么要我在ApplicationDbContext ??

中指定关系?

我已将两个上下文类添加到以下Gist中:

https://gist.github.com/JorjeRedemption/bce50617ee40c5598d3f67dad73da25f

0 个答案:

没有答案