4
我在Microsoft SQL Server 2008 R2中有一个名为Page
的表,主键为ID
。我有另一个表Navigation
与列PageID
。 PageID
是Page
的ID
列的唯一外键引用。这创建了Navigation
和Page
记录之间的一对一关系。数据库第一个实体框架将唯一外键映射为一对多
从数据库中生成模型时,它创建一对多关系,其中Page
包含Navigation
记录的列表。
这是简单的实体框架检测到涉及外键,并忽略数据库中列的唯一性?
在Navigation
的PageID
列中的SQL是:
[PageID] INTEGER FOREIGN KEY REFERENCES [Page](ID) UNIQUE NOT NULL
在Page
的ID
列中的SQL是:
[ID] INTEGER PRIMARY KEY IDENTITY(0, 1) NOT NULL
这里是解决方案,我原来有,这就是拉吉斯拉夫被提及。
在Navigation
的PageID
列中的SQL是:
[ID] INTEGER PRIMARY KEY FOREIGN KEY REFERENCES [Page](ID) NOT NULL
我曾尝试过,但担心这是一个糟糕的设计决定。我想我们会回到那个。你是否碰巧提及了一个微软的页面,这个页面上的EF忽略了唯一的密钥? – 2012-04-08 08:31:41
[这里是博客文章](http://blogs.msdn.com/b/efdesign/archive/2011/03/09/unique-constraints-in-the-entity-framework.aspx)关于EF中的唯一约束去年。这是预计将来可能实现的功能。它不会成为即将推出的.NET 4.5/EF 5.0的一部分。如果你希望在[Data UserVoice]的EF投票中有独特的约束(http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/1050579-unique-constraint-ie-candidate-关键支持)。 – 2012-04-08 10:44:11