【问题标题】:Why Navigation properties are missing?为什么缺少导航属性?
【发布时间】:2014-01-15 02:34:27
【问题描述】:

我以前做过一个项目。数据库是 Access。我将它转换为 SQL Server(带有数据)并使用 Entity Framework 4.4(首先是数据库),一切正常。最近,我们需要添加更多的表,在现有的表中添加一些列,并为这些表添加一些外键。现在,我删除了 .edmx 和 .tt 文件,添加了一个使用新数据库的新 .edmx,由于某些原因,一些外键未在表中显示为导航属性。

现在,如果我在没有数据的情况下再次将 Access 转换为 SQL,请更改相同的数据库架构,删除旧项目中的 .edmx 和 .tt,然后添加新的 .edmx 文件,奇怪的是,会显示更多导航属性,但仍然不是全部。

我也升级到实体 5 和 6.0.1,结果相同。

以前有人遇到过同样的问题吗?任何可能导致这种情况的线索?以及如何解决?

【问题讨论】:

    标签: sql entity-framework c#-4.0


    【解决方案1】:

    我想通了。这是因为 Access 在某些列上有一些索引。一个索引就像表的 ID。转换为 SQL 后,索引仍然存在于 ID 列上,我在转换中在该列上创建一个 PK,然后在其他表上 FK 以指向该 PK。所以,现在,该列有 2 个索引,一个是唯一的非聚集的,一个是聚集的。也许Entity框架不喜欢这样?

    删除唯一非聚集索引后,它现在可以正常工作了。

    也许有人更了解它的重要性。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多