0

Oracleデータソースを使用しており、データの読み取りのみを行っており、書き込みは行っていません。データベースの内容を変更することはできません。

コーステーブルとメモテーブルの2つのテーブルのこのシナリオを想像してみてください。

コーステーブルには、メモ(MemoId)テーブルへの2つのリンクがあります。

それで...

コーステーブル CourseIdタイトルSummaryNarrationMemoIdPreCourseInformationMemo

MemoToStringテーブル MemoIdMemoData(バイナリ)

そのため、さまざまな理由で、コーステーブルがメモテーブルに2回結合されます。

同じテーブルを2回使用し、Memoテーブルをベースとして使用し、PreCourseMemoとSummaryNarrationMemoを作成するために、EF継承ルートを調べましたが、ビルド時にこれらのエラーがスローされます。

モデルを更新して、2つのテーブルをモデルに追加しました。 TwoTablesInEF

エラー3005:613行目から始まるフラグメントのマッピングの問題:SetMemoToStringTablesですべてのタイプのマッピングを指定する必要があります。キー(PK)を持つエンティティは、次の場合にラウンドトリップしません。エンティティがタイプ[MyModel.MemoToStringTable]の場合

エラー3005:613行目から始まるフラグメントのマッピングの問題:SetMemoToStringTablesですべてのタイプのマッピングを指定する必要があります。キー(PK)を持つエンティティは、次の場合にラウンドトリップしません。エンティティがタイプ[MyModel.PreCourseMemo]の場合

エラー3005:613行目から始まるフラグメントのマッピングの問題:SetMemoToStringTablesですべてのタイプのマッピングを指定する必要があります。キー(PK)を持つエンティティは、次の場合にラウンドトリップしません。エンティティがタイプ[MyModel.SummaryNarrationMemo]の場合

データベース上にそれぞれのビューを作成できることは知っていますが、それは正しくありません。:( 何かご意見は?

4

1 に答える 1

0

私があなたの問題を正しく理解していれば、それは機能しません。継承をメモテーブルにマップしようとしていますが、そのためには、メモテーブルに特別な識別子列が含まれている必要があります。この列には、EFがまたはであるPreCourseMemoかどうかが示されますSummaryNarrationMemo。コースとの関係だけでこれらのタイプを区別することはできません。

于 2012-04-24T10:30:00.407 に答える