我以前一直在关于类继承的问题,并围绕这一点构建一个数据库,并使用实体框架没有成功.所以我试图在visual studio中创建实体,看看它自动创建的数据库表.
我有一个Entity MediaItem是抽象和游戏从这继承.游戏有一个对应于ConsoleID的控制台(Int).但是,当我生成数据库时,我会在MediaItems_Game表中找到一个不需要的列(ConsoleTypes_ConsoleID).为什么会这样,怎么可以防止这种情况发生?谢谢.
解决方法
首先你的模型可能是错误的. ConsoleType和Game不是一对一的关系(除非你有每个控制台类型的单一游戏).我预计1个控制台可以有多个游戏.所以应该是一对多的.在现实中,游戏可以在多个平台上发布,所以应该是多对多的.
由于您的ConsoleType和Game之间的关系不知道它应该使用控制台属性作为外键,所以您有无效的列.如果您使用独立关联,则会发生这种情况.当您将实体从实体绘制到实体设计器中的其他实体时,默认使用独立关联.你必须使用外键关联.
从这个设置开始(从ConsoleType到Game的关联 – 你必须有一对多关系):
选择ConsoleType和Game a之间的属性关系,点击参考约束:
在参考约束对话框中设置关系: