0

問題ドメインのテーブル構造は次のとおりです-

  1. アンケート - QuestionnaireID (主キー)、QuestionID

  2. Question = QuestionID、Description、およびその他の 12 個のプロパティ。

  3. QuestionGroup = QuestionGroupID、説明、およびその他の 5 つのプロパティ。

Questionnaire テーブルの QuestionID は、Question テーブルと QuestionGroup テーブルの両方に関連付けられています。


エンティティフレームワークを使用すると、共通の構造があります

  1. Questionnaire - QuestionnaireID (主キー)、QuestionID、QuestionDetails (QuestionBase 型のナビゲーション プロパティ)。

  2. QuestionBase (Question および QuestionioGroup の親クラス)

  3. 質問

  4. 質問グループ

Questionnaire の QuestionDetails プロパティに、Entity Framework Code-First を使用して Question または QuestionGroup の値が含まれるように、それらを一緒にマップする方法を教えてください。

データベースが既に存在するため、データベースを変更するオプションはありません。EFの新しいバージョンを使用しても問題ありません。

そうすることは可能ですか?

ありがとう

4

1 に答える 1

1

データベースを変更できない場合、QuestionDetailsナビゲーション プロパティと関連するQuestionId外部キー プロパティをまったくマップできません。これは、2 つの関連するテーブルを対象とする単一のナビゲーション プロパティを持つことができないためです。QuestionBaseエンティティに関連テーブルもあり、それを TPT 継承としてマップする場合にのみ機能します。Questionさらに、とQuestionGroupテーブルの主キー列は同じ名前である必要があります。

QuestionIDinテーブルに参照制約があるとは思えません( と の両方とQuestionnaireの関係を満たす)。これは、マッピングできないことを示す最初の危険信号です。QuestionQuestionGroup

于 2012-07-04T16:59:18.883 に答える