我正在尝试学习EF并遇到了一些问题。我有一个数据库,让我们简化一下,有4个表:
1) Items(NodeID, other fields),
2) Nodes(NodeID, extra),
3) Recipient(RecipientID, others)
4) NodesRecipient(RecipientID, NodeID).
Item-Node是1-1关系,主键是NodeID 收件人具有主键RecipientID,NodesRecipient键是RecipientID和NodeID。 下面是图表 我使用VS 2012从上面的数据库创建了一个EF模型。创建模型后,我通过将其基数指定为Item并删除了它们之间的1-1关系,使得Node从派生中派生。我也把项目抽象化,因为我不想直接操纵该实体。
编译器抱怨:
错误1错误3024:从第266行开始映射片段时出现问题:必须指定EntitySet项的所有关键属性(Items.nodeID)的映射。
但是如果我没有使用继承,那么编译器就不会投诉,这很好。
我的问题是什么?如何解决这个问题?如果EF允许继承并且我认为它可以允许我指定基类,那将是很好的,但我认为在阅读Microsoft文档时可能会有一些我可能错过的链接。
答案 0 :(得分:4)
您可能会错过子实体表的主键和基本实体表的主键中的外键。
添加FK后,从架构(从数据库)更新EDMX。