数据库中缺少外键是否会影响EF生成的sql?

DSF*_*DSF 13 database sql-server entity-framework foreign-keys

我正在研究数据库优先的ASP.NET MVC应用程序.查看数据库时,外键非常不一致,基本上它们仅在创建表的SQL脚本中指定时才存在.在大多数情况下,他们不在那里.

但是,查看edmx模型,我可以看到它知道外键,即它已正确识别导航属性.

我的问题是,实际数据库中缺少的外键是否对Entity Framework生成的sql有影响?实际上,我指的是对绩效的负面影响.

我无法弄清楚它是否重要.

只是为了澄清,在数据库中我正在扩展表并寻找指示外键的红色键.我也在查看子文件夹:"Keys".

Ger*_*old 5

对绩效的负面影响.

我可以想到外键存在的两个影响.

  1. 一个在插入和更新微小的负面影响,因为这些密钥进行检查.然而,与在一个完整的数据库往返中发生的所有其他事件相比,这种影响完全可以忽略不计.绝对没有理由不使用它们.它永远不会超过数据完整性的好处.
  2. 使用级联删除和更新设置外键时,可获得巨大的性能提升.

简而言之,没有理由故意省略外键.

当然,遗产不可能一蹴而就.如果数据库架构有任何变化的余地,我会去做.如果没有,您可以考虑在edmx模型中手动添加公共关联.不会通过从数据库更新模型来擦除这些关联.