实体框架 - 链接到两个表列的一个实体属性

时间:2012-07-04 11:48:24

标签: entity-framework

我们的问题域有以下表格结构 -

  1. 调查问卷 - QuestionnaireID(主键),QuestionID

  2. 问题= QuestionID,描述和其他12个问题。

  3. QuestionGroup = QuestionGroupID,Description和其他5个属性。

  4. 问卷调查表的问题ID与问题和问题组表相关。


    现在有了实体框架我有共同的结构

    1. 调查问卷 - QuestionnaireID(主键),QuestionID,QuestionDetails(QuestionBase类型的导航属性)。

    2. QuestionBase(Question和QuestioGroup的父类)

    3. 问题

    4. QuestionGroup

    5. 我如何将它们一起映射,以便QuestionDetails调查表的属性将包含来自实体框架代码优先的问题或问题组的价值。

      没有更改数据库的选项,因为它已经存在,使用EF新版本没有问题。

      是否可以这样做?

      由于

1 个答案:

答案 0 :(得分:1)

如果您无法更改数据库,则根本无法映射QuestionDetails导航属性和相关的QuestionId外键属性,因为您无法使用针对两个相关表的单个导航属性。仅当QuestionBase实体具有相关表并且将其映射为TPT继承时,它才会起作用。此外,QuestionQuestionGroup表中的主键列必须具有相同的名称。

我怀疑您对QuestionIDQuestionnaire中的引用约束(满足与QuestionQuestionGroup的关系)。这是第一个应该告诉你无法映射的红旗。