1

我试图证明使用 EntityFramework 并在第一个障碍中落下。我正在使用数据库优先方法。下面是它在 SQL Server 2008 R2 中的样子:

数据库图

如您所见,非常简单的域。该关联是 User.Id 和 Blog.UserId 之间的一对多关系。

但是,即使使用这个非常简单的域,EF 也会失败。当我导入表格时,我得到了这个:

英孚模型

如您所见,没有关联。关系消失了,无论我删除多少次,重新生成,它都不会出现。选中“在模型中包含外键列”。

但是,如果我使用基于整数而不是 GUID 的键创建表,则会创建关系。

这是一个错误,一个限制还是我自己的愚蠢?

它不会激发我的信心。它到底将如何在具有一百个表和一千个关联的现实场景中执行?

  • 对比 2012
  • SQL Server 2008 R2
  • 英孚 5
4

1 回答 1

6

我已经解决了这个问题。这个问题是由我不知道我在桌子上的一个流氓索引引起的。

如果在与主键相同的字段上存在 UNIQUE 索引,这将导致 EF 根本无法生成 PK-FK 关系。

简单地删除不必要的唯一索引(主要强制执行唯一索引),EF 设计器立即拾取关系。

于 2012-12-08T22:04:11.897 回答