2013-02-09 131 views
0

我在SQL Server 2012 Express数据库中有两个表,它们是这样定义的。实体框架5不添加外键

SampleTableOne 的ColumnName为nvarchar(50)主键 ID INT

SampleTableTwo ID INT主键 的ColumnName为nvarchar(50)

当我使用下面的命令

ALTER TABLE SampleTableOne 
ADD FOREIGN KEY(Id) REFERENCES SampleTableTwo(Id) 
ON DELETE CASCADE 
ON UPDATE CASCADE 
GO 
添加一个外键

但是,当我将模型添加到实体框架中时,它不添加外键。我选择了“在模型中包含外键列”。有没有我失踪的一步?

编辑:

我的目标是一对一的关系。

+0

建议:名称和编号是SQL Server保留关键字。作为表列名称使用不是一件好事。你的数据库管理员不喜欢它 – Hiten004 2013-02-09 05:23:56

+0

我刚刚使用了数字作为示例名称,我改变了它 – tympaniplayer 2013-02-09 06:20:44

回答

1

第三partAssociations in EF Code Firstsixth part看见共享主密钥关联的局限性,并认为这种类型的关联的是相对罕见的,并且在许多模式,一对一的和多值关联表示与一个外键字段和一个唯一的约束。

+1

多值实体关联定义为实体引用的集合。一对多关联是涉及集合的最重要的一种实体关联。当一个简单的双向多对一/一对多的人能够完成这项工作时,我们甚至不鼓励使用更具异国情调的关联风格。一个多对多的关联可能总是被表示为一个介入类的两对多关联。这种模式通常更容易扩展,所以我们倾向于不在应用程序中使用多对多关联 – zandi 2013-02-09 06:42:35

+0

这应该是一对一的,这种模式仍然适用吗? – tympaniplayer 2013-02-09 16:13:04