为什么实体框架有时会自动创建关系,有时不会?

时间:2010-07-30 04:10:57

标签: entity-framework

我有一个类似于此的简单模式:

  

客户

     

CustomerId,FirstName,LastName,CreateDt

     

CustomerFeedback

     

CustomerFeedbackId,CustomerId,Feedback

两者之间存在外键关系。

  • 我从中创建了一个 LINQ to SQL 模型,并在两个表之间绘制了一条关系线。
  • 我从中创建了一个 Entity Framework 模型,表之间没有任何关系。

我已经创建了其他模式,并且会自动绘制关系。我不明白为什么它不在这里工作。我的架构比这更复杂,但我只想添加这两个表。肯定有一个外键建立,因为当我在企业管理器中创建数据库图并添加表时,关系就会显示出来。

EF如何决定何时自动创建关系?

我可以手动创建它,但我真的很讨厌这样做以防万一我搞砸了。我重新启动了Visual Studio并从一个完全空的模型开始,它仍然在做它。

2 个答案:

答案 0 :(得分:0)

在黑暗中拍摄,但是CustomerFeedback.CustomerId可以为空和/或唯一(通过键)?我已经看到设计师在这样的场景中表现得有些奇怪,更可靠的是FK,而不是唯一的关键。

答案 1 :(得分:0)

最后我必须这样做:

  • 关闭所有管理工作室设计师的表格和图表
  • SELECT * INTO Customer2 from Customer
  • Customer2
  • 上重新创建索引和键
  • 重命名Customer> CustomerOld
  • 重命名Customer2> Customer

现在有效:-) 没有架构更改或任何其他更改。 我之前尝试删除并重新创建FK。 唯一不尊重他们的是EF设计师,所以我不知道发生了什么。