質問: 私はADO.NET Entity Frameworkを使用してASP.NET MVCサイトを構築しています。私は、外部キーによって関連付けられたこれらのエンティティを含むエンティティモデルを持っています。 レポート(ID、日付、見出し、Report_Type_IDなど) * SubReport(ID、ReportTextなど) - Reportとの1対1の関係。 + ReportSource(ID、Name、Description) - Sub_Reportとの1対多の関係。 - ReportSourceType(ID、Name、Description) - ReportSourceとの1対多の関係。 - 連絡先(ID、名前、住所など) - Report_Sourceとの1対1の関係。 SubReportの種類ごとにCreate.aspxページがあります。 postイベントメソッドは新しいSub_Reportエンティティを返します。 以前、私の投稿方法では、私はこのプロセスに従った: 1. ページのフィールドから新しいReportエンティティのプロパティを設定します。 2. ページのフィールドからSubReportエンティティの特定のプロパティを設定します。 3. SubReportエンティティのReportを1で作成した新しいReportエンティティに設定します。 4. ページから提供されたIDを指定して、ReportSourceを調べ、Sub_ReportエンティティのReportSourceを見つかったエンティティに設定します。 5. 変更内容を保存。 このワークフローは、数週間でうまくいきました。それから先週何かが変わったし、それはもううまくいきません。今すぐ保存操作の代わりに、私はこの例外を得ます: ``` UpdateException: "Entities in 'DIR2_5Entities.ReportSourceSet' participate in the 'FK_ReportSources_ReportSourceTypes' relationship. 0 related 'ReportSourceTypes' were found. 1 'Report_Source_Types' is expected." ``` デバッグビジュアライザは以下を表示します。 * SubReportのReportSourceが設定およびロードされ、そのすべてのプロパティが正しいです。 * Report_Sourceには、有効なReportSourceTypeエンティティが添付されています。 SQLプロファイラでは、準備されたSQL文は問題ないようです。誰かが私が見逃している明白なことを私に指摘できますか? TIA 注:この場合、ReportとSubReportは常に新しいエンティティです。 Reportエンティティは、さまざまな種類のレポートに共通のプロパティを含み、一般的なクエリに使用されます。サブレポートは、種類によって異なる追加パラメータを持つ特定のレポートです。 SubReportの種類ごとに実際には異なるエンティティセットがありますが、この質問はそれらすべてに当てはまりますので、私はSubReportを簡単な例として使用します。
回答: データベーステーブルが互いに1対1の関係にある場合、これが発生する傾向があります。あなたの例では、reportsourcesetはそれが参照しているどんなIDを持つreportsorttypesも期待します。私の関係が反対側のテーブルからの2つの主キーを一緒にリンクしているとき、私はこの問題に遭遇しました。