外键不存在时禁用关联

时间:2014-02-25 14:41:12

标签: c# entity-framework entity-relationship entity-framework-6

我为我的数据库创建了一个edmx。在其中,实体框架删除了一个表,而是在两个表之间创建了一个关联,因为它将列名与另一个表中的主键匹配。

我不希望这样,因为这些表之间没有真正的关联。如何删除该关联并获取中间表的类?

示例:

SomeTable

  • Id int pk

MiddleTable

  • SomeTableId int fk
  • SomeCode int

OtherTable

  • SomeCode int pk

MiddleTable没有上课。

1 个答案:

答案 0 :(得分:0)

  • 从edmx中删除一个表格,例如OtherTable
  • 从数据库更新模型并添加MiddleTable
  • 从数据库更新模型并添加OtherTable

当我使用类似的模型执行此操作时,我最终得到SomeTableMiddleTable之间的关联以及无关联的OtherTable。现在,您可以根据需要手动添加/删除关联。

正常的EF行为不是为中间表创建一个类。这是SomeTableOtherTable之间所谓的多对多关联,可以通过两个集合属性建模:

SomeTable.OtherTables
OtherTable.SomeTables

中间表,联结表,实际上并不是必需的。

我觉得你说这两个表之间没有任何关联,这有点令人惊讶,尽管显然,在数据库中有外键。从技术上讲,它多对多关联。