ADO.Net EF – 如何在模型第一种方法中定义外键关系?
我一直有以前的问题关于类inheritance和围绕此构造一个数据库,并使用entity framework没有成功。 所以我试图在Visual Studio中创build实体,并查看它自动创build的数据库表。
我有一个实体MediaItem这是抽象和游戏inheritance这一点。 游戏有一个Console(Int),它对应于ConsoleID。 但是,当我生成数据库时,我得到一个额外的不需要的列(ConsoleTypes_ConsoleID)MediaItems_Game表内。 为什么是这样的,我怎样才能防止这种情况发生? 谢谢。
首先你的模型可能是错的。 ConsoleType
和Game
不是一对一的关系(除非每个控制台types都有单独的游戏)。 我期望1个控制台可以有多个游戏。 所以它应该是一对多的。 实际上游戏可以在多个平台上发布,所以它应该是多对多的。
因为ConsoleType
和Game
之间的关系并不知道它应该使用Console
属性作为外键,所以你得到了开箱的列。 如果使用独立关联,则会发生这种情况 当您从实体devise器中的一个实体绘制其他实体时,将使用独立的关联。 您必须使用外键关联。
从这个设置开始(从ConsoleType
到Game
绘制关系 – 你必须有一对多的关系):
在属性中selectConsoleType
和Game
an之间的关系点击Referential Constraint :
在引用约束对话框中,只需设置关系:
保存你的模型并重新生成数据库。