之前我参与过一个项目。数据库是Access。我将它转换为SQL Server(带数据)并使用Entity Framework 4.4(数据库优先),一切正常。最近,我们需要添加一些表,向现有表添加一些列,并向这些表添加一些外键。现在,我删除了.edmx和.tt文件,dd是一个使用新数据库的新.edmx,由于某些原因,几个外键在表中没有显示为导航属性。
现在,如果我在没有数据的情况下再次将Access转换为SQL,请更改相同的数据库架构,删除旧项目中的.edmx和.tt,然后添加新的.edmx文件,奇怪的是,会显示更多导航属性,但仍然不是全部。
我也升级到Entity 5和6.0.1,结果相同。
之前有人遇到过同样的问题吗?任何可能导致这种情况的线索?以及如何解决它?
答案 0 :(得分:0)
我明白了。这是因为Access在某些列上有一些索引。一个索引就像表的ID。转换为SQL后,索引仍然存在于ID列上,我在转换时在该列上创建PK,然后在其他表上指向FK以指向此PK。所以,现在,该列有2个索引,一个是唯一的非群集,一个是群集。也许实体框架不喜欢这个?
删除Unique non-clustered索引后,它现在可以正常工作。
也许有人知道更重要的原因。
由于