如何使用与同一子表相关的两个或多个列表正确构建EF5代码优先模型?

丹尼尔

我有以下型号:

public class SomeForm
{
     [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
     public int Id { get; set; }

     public IList<FacilityContactInformation> OriginatingFacilities { get; set; }

     public IList<FacilityContactInformation> DestinationFacilities { get; set; }
}

public class FacilityContactInformation
{
    public FacilityContactInformation()
    {
        Id = -1;
    }

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [MaxLength(50)]
    public string Owner { get; set; }
}

我正在使用自动迁移来生成和重新生成数据库架构。

这将生成错误“外键'FK_dbo.FacilityContactInformations_dbo.SomeForm_SomeForm_Id'引用表'FacilityContactInformations'中的无效列'SomeForm_Id'。无法创建约束。请参见先前的错误。

我怀疑根本原因是EF尝试为两个列表生成FK FK_dbo.FacilityContactInformations_dbo.SomeForm_SomeForm_Id

有什么办法可以继续使用自动迁移,但是可以使用它来生成可以正常运行的FK吗?似乎FK应该包括列表名称,并在FacilityContactInformations上生成两个属性,或者应该生成要连接的中间表。

自由

当您有2个链接到同一类的导航属性时,应重写dbcontext类的OnModelCreating方法。然后将此代码添加到OnModelCreating中:

modelBuilder.Entity<SomeForm>
  .Hasmany<FacilityContactInformation>(x => x.OriginatingFacilities);

modelBuilder.Entity<SomeForm>
 .Hasmany<FacilityContactInformation>(x => x.DestinationFacilities);

这是因为EF无法确定正确的键(如果使用导航)。支柱。链接到同一个类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为一个模型创建两个导航属性(EF6代码优先)

来自分类Dev

C#EF6代码优先TPH-导航到使用注释侵犯同一实体的两个实体的属性

来自分类Dev

EF5代码优先-数据注释与Fluent API

来自分类Dev

VBScript 在同一代码中使用两个 For Next

来自分类Dev

如何在MATLAB中一次使用同一代码中的两个数据集?

来自分类Dev

EF6代码优先模型ForeignKey

来自分类Dev

如何使用 EF 合并来自两个相关模型的相关数据?

来自分类Dev

Git只需一个提交差异即可维护同一代码的两个版本

来自分类Dev

如何使用目标使用同一代码库启动多个应用程序?

来自分类Dev

在一个单独的项目中使用Identity用户模型的Entity Framework 6代码优先迁移

来自分类Dev

如何使用Redux Toolkit来运行同一代码的多个案例?

来自分类Dev

我可以让两个Web用户控件(.ascx)共享同一代码隐藏类吗?

来自分类Dev

如何使用实体框架代码优先在两个实体之间具有多个一对多关系

来自分类Dev

两个网络,同一子网,主机如何解析?

来自分类Dev

在实体框架6代码优先方法中在两个表之间创建一对多和多对一映射

来自分类Dev

EF 代码优先:如何将两个实体的数据保存在一个表中?

来自分类Dev

是什么使两个表相关?

来自分类Dev

是什么使两个表相关?

来自分类Dev

如何首先使用mvc 5和EntityFramework代码将两个属性映射到同一张表?

来自分类Dev

Rspec,同一代码上的多个断言

来自分类Dev

EF6代码优先-使用不匹配的外键配置一对一关系

来自分类Dev

EF6代码优先-使用不匹配的外键配置一对一关系

来自分类Dev

如何在EF6代码优先中将泛型类型与数据库上下文一起使用

来自分类Dev

如何将一个父表与两个不相关的子表关联

来自分类Dev

MVC 5代码优先编辑

来自分类Dev

如何从与一对一字段相关的两个模型中获取所有对象的列表

来自分类Dev

使用list -erlang将两个列表相乘

来自分类Dev

如何将两个无线路由器放在同一子网中?

来自分类Dev

如何使用Laravel查询构建器合并来自同一表的两个查询

Related 相关文章

  1. 1

    如何为一个模型创建两个导航属性(EF6代码优先)

  2. 2

    C#EF6代码优先TPH-导航到使用注释侵犯同一实体的两个实体的属性

  3. 3

    EF5代码优先-数据注释与Fluent API

  4. 4

    VBScript 在同一代码中使用两个 For Next

  5. 5

    如何在MATLAB中一次使用同一代码中的两个数据集?

  6. 6

    EF6代码优先模型ForeignKey

  7. 7

    如何使用 EF 合并来自两个相关模型的相关数据?

  8. 8

    Git只需一个提交差异即可维护同一代码的两个版本

  9. 9

    如何使用目标使用同一代码库启动多个应用程序?

  10. 10

    在一个单独的项目中使用Identity用户模型的Entity Framework 6代码优先迁移

  11. 11

    如何使用Redux Toolkit来运行同一代码的多个案例?

  12. 12

    我可以让两个Web用户控件(.ascx)共享同一代码隐藏类吗?

  13. 13

    如何使用实体框架代码优先在两个实体之间具有多个一对多关系

  14. 14

    两个网络,同一子网,主机如何解析?

  15. 15

    在实体框架6代码优先方法中在两个表之间创建一对多和多对一映射

  16. 16

    EF 代码优先:如何将两个实体的数据保存在一个表中?

  17. 17

    是什么使两个表相关?

  18. 18

    是什么使两个表相关?

  19. 19

    如何首先使用mvc 5和EntityFramework代码将两个属性映射到同一张表?

  20. 20

    Rspec,同一代码上的多个断言

  21. 21

    EF6代码优先-使用不匹配的外键配置一对一关系

  22. 22

    EF6代码优先-使用不匹配的外键配置一对一关系

  23. 23

    如何在EF6代码优先中将泛型类型与数据库上下文一起使用

  24. 24

    如何将一个父表与两个不相关的子表关联

  25. 25

    MVC 5代码优先编辑

  26. 26

    如何从与一对一字段相关的两个模型中获取所有对象的列表

  27. 27

    使用list -erlang将两个列表相乘

  28. 28

    如何将两个无线路由器放在同一子网中?

  29. 29

    如何使用Laravel查询构建器合并来自同一表的两个查询

热门标签

归档