【问题标题】:Entity Framework not recognizing foreign key实体框架无法识别外键
【发布时间】:2014-07-30 00:49:51
【问题描述】:

这是我的表结构:

人物

PersonID int

地址

AddressId int
Address varchar

人员地址

PersonID int primary key references Person.PersonID
AddressID int primary key references Address.AddressID

如您所见,PersonAddress 之间没有关系。当我将这 3 个表添加到 EF 6.0 时,它不会添加 PersonAddress 表,而是添加 PersonAddress 之间的关系。我很困惑。

【问题讨论】:

  • 这正是它应该在 EF 中工作的方式,而这正是您试图在对象中建立的关系
  • 您如何将其“添加”到实体框架中?您是否使用代码优先?如果是这样,请向我们展示您的课程!通常,EF 将对具有多个地址的 Person 和可能属于多个人的 Addressconceptual 模型进行建模 - 但它会“隐藏”在数据库。不用担心!
  • @marc_s 谢谢。我正在使用数据库优先模型。因此,EF 明智地假设地址可以在多人之间共享,并且一个人可以拥有多个地址。我认为它会添加我告诉它添加的所有表,并将其显示在 EDMX 图中。这太酷了。关于它的任何文件?谢谢。我将使用它生成的内容,看看是否满足我的需求。
  • 如果你有一个数据库模型,你应该可以右击你的设计图面然后去Generate Database from Model。您将获得用于生成数据库的 SQL - 我确定您也会在其中看到“链接”表!
  • 文档:使用 MSDN 和通常的 Microsoft Dev Cenver for EF - 这是你能找到的最好的文档

标签: sql entity-framework


【解决方案1】:

EF 正在做你想做的事。在 EF 中,您在 OBJECTS 之间有关系,而不是 SCHEMA。 Person 和 Address 之间的对象关系可以在不需要第三个对象的情况下完成。这降低了复杂性并使代码更易于管理。 EF 将根据需要处理将关系来回转换为架构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多