ADO.Net EF - 如何在模型第一种方法中定义外键关系?

10 database ado.net entity-framework visual-studio-2010 entity-framework-4

我以前遇到过关于类继承的问题,并围绕此构建数据库并使用实体框架没有成功.所以我试图在visual studio中创建实体,并查看它自动创建的数据库表.

我有一个Entity MediaItem,它是Abstract和Game继承自此.游戏有一个控制台(Int),对应于ConsoleID.但是,当我生成数据库时,我在MediaItems_Game表中获得了一个额外的不需要的列(ConsoleTypes_ConsoleID).为什么这样,我怎么能防止这种情况发生?谢谢.

在此输入图像描述

Lad*_*nka 26

首先你的模型可能是错的.ConsoleType并且Game不是一对一的关系(除非你为每种控制台类型都有单一游戏).我希望1个控制台可以有多个游戏.所以它应该是一对多的.实际上,游戏可以在多个平台上发布,因此它应该是多对多的.

你有未被列入的列,因为你ConsoleType和之间的关系Game并不知道它应该使用Console属性作为外键.如果使用独立关联,则会发生这种情 当您从实体设计器中的一个实体绘制到其他实体时,默认使用独立关联.您必须使用外键关联.

与此开始建立(平局协会从ConsoleTypeGame-你必须有一个一对多的关系):

在此输入图像描述

选择属性ConsoleTypeGame属性之间的关系单击Referential Constraint:

在此输入图像描述

Referential Constraint对话框中,只需设置关系:

在此输入图像描述

保存模型并再次生成数据库.