我在数据库中创建了大量表,以下是有问题的表:
Table Name -Item
ItemID - PK (Auto Increment)
Title
Table Name -Game
ItemID - PK
Console
Table Name -Film
ItemID - PK
Type
我还添加了 Item 的 ItemID 与 Film-Item 和 Game-Item 之间的关联
问题是,当我将其放入 Visual Studio 并使用实体框架时,它似乎在某种程度上折叠了类并完全删除了电影和游戏...然后我无法在我的 ASP 代码中使用游戏或电影作为实体,有什么想法如何解决这个问题吗?
是的,这就是实体设计器的行为方式。如果您在数据库中对结构进行建模并使用从数据库更新模型它确实会被建模为通用关联,因为 EF 还不知道您想要将其建模为继承。你会得到这个:
您必须手动修改此模型才能使用 TPT 继承。首先删除这两个关系。它还将删除导航属性,您将得到以下结果:
Use 遗产从工具箱(如上一个屏幕截图所述)并从Film
to Item
和来自Game
to Item
。现在你需要完成这个模型。当前模型将无法验证,因为ItemId
映射到父实体和子实体中。删除ItemId
来自两者Film
and Game
实体。您还可以将 Item 实体设为 Abstract,您将得到:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)