我们的问题域有以下表格结构 -
调查问卷 - QuestionnaireID(主键),QuestionID
问题= QuestionID,描述和其他12个问题。
QuestionGroup = QuestionGroupID,Description和其他5个属性。
问卷调查表的问题ID与问题和问题组表相关。
现在有了实体框架我有共同的结构
调查问卷 - QuestionnaireID(主键),QuestionID,QuestionDetails(QuestionBase类型的导航属性)。
QuestionBase(Question和QuestioGroup的父类)
问题
QuestionGroup
我如何将它们一起映射,以便QuestionDetails调查表的属性将包含来自实体框架代码优先的问题或问题组的价值。
没有更改数据库的选项,因为它已经存在,使用EF新版本没有问题。
是否可以这样做?
由于
答案 0 :(得分:1)
如果您无法更改数据库,则根本无法映射QuestionDetails
导航属性和相关的QuestionId
外键属性,因为您无法使用针对两个相关表的单个导航属性。仅当QuestionBase
实体具有相关表并且将其映射为TPT继承时,它才会起作用。此外,Question
和QuestionGroup
表中的主键列必须具有相同的名称。
我怀疑您对QuestionID
表Questionnaire
中的引用约束(满足与Question
和QuestionGroup
的关系)。这是第一个应该告诉你无法映射的红旗。