繁体   English   中英

EF Core Code First,相同object的2个多对一关系

[英]EF Core Code First, 2 Many to one relations of same object

我有 2 个具有以下结构的类,Person 与 SchoolClass 有 2 个多一关系:

public class Person
    {
        public int Id { get; set; }
        public List<SchoolClass> SchoolClasses { get; set; }
        public List<SchoolClass> OldSchoolClasses { get; set; }
    }

    public class SchoolClass
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

我可以添加 ghostProps 但不能更改类。

当我为 EFCore 进行迁移时,它会将 2 个不同的人员 ID 添加到我想避免的 SchoolClass 表中。

我想生成 2 个多对多表:

  • PersonSchoolClasses 表
  • OldPersonSchoolClasses 表

Fluent API 可以做到这一点吗?

也许您应该尝试 inheritance:

public class SchoolClass    // this could be abstract
{
    public int Id { get; set; }
    public string Name { get; set; }
}
public class NewSchoolClass : SchoolClass
{
}
public class OldSchoolClass : SchoolClass
{
}
public class Person
{
    public int Id { get; set; }
    public IList<NewSchoolClass> NewSchoolClasses { get; set; }
    public IList<OldSchoolClass> OldSchoolClasses { get; set; }
}

在 DbContext 中:

-DbSet<SchoolClass> SchoolClasses { get; set; }
+DbSet<OldSchoolClass> OldSchoolClasses { get; set; }
+DbSet<NewSchoolClass> NewSchoolClasses { get; set; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM