我正在努力证明使用EntityFramework并在最初的障碍中堕落。我正在使用数据库第一种方法。以下是SQL Server 2008 R2中的内容:
正如您所看到的,非常简单的域名。该关联是User.Id和Blog.UserId之间的一对多关系。
然而,即使有这个令人难以置信的简单域名,EF也会失败。当我导入表格时,我得到了这个:
如您所见,没有关联。关系消失了,无论我删除多少次,重新生成,它都不会出现。选中“在模型中包含外键列”。
但是,如果我使用基于int而不是GUID的键创建表,则会创建关系。
这是一个错误,一个限制还是我自己的愚蠢?
这并没有激发我的信心。它如何在真实场景中表现出来,有一百个桌子和一千个关联?
答案 0 :(得分:6)
我已经解决了这个问题。这个问题是由我不知道的流氓索引引起的。
如果在与主键相同的字段上存在UNIQUE索引,则会导致EF无法生成PK-FK关系。
只需删除不必要的唯一索引(主要强制执行唯一),EF设计师立即获得了这种关系。