EF Code Firstを使用して既存のDB2データベースにマップしています。これは1対多の関係ですが、残念ながら簡単にビューを作成したりスキーマを変更することはできません。EFコード最初の外部キーの問題
親テーブルのスキーマは、次のキーを持っています
Type (char(1))
ServiceDate (datetime)
FormNumber (varchar(8))
子テーブル(詳細は)私が作成するために、流暢なマッピングを使用したいのですが、次のキー
ServiceDate (datetime) (also a foreign key to ServiceDate on the parent table)
FormNumber (varchar(8)) (also a foreign key to ServiceDate on the parent table)
SpecificServiceDate (datetime)
LineNumber (varchar(8))
を持っています関係。私がしている場合:
.HasMany(e => e.Details).HasForeignKey(e => new {e.ServiceDate, e.FormNumber});
...キーが主キーと一致しないというエラーが表示されます。これを設定する方法のアイデアは?ありがとう。
編集
OK、EFは、ネイティブにこの機能をサポートしていません。データを遅延ロードするための回避策はありますか?
これは違いがある場合、これは読み取り専用です。
私はそれがうまくいくかどうかもわかりません。 FormNumber = 1、ServiceDate = 1/1/2013、Type = A、FormNumber = 1、ServiceDate = 1/1/2013、Type = Bの場合はどうなりますか?どのレコードが親レコードであるかを一意に選択する方法はありません。私はDB/2がこの種の外部キー関係を一意に特定しないときに許可するとは思えません。 –
これは古いAS400システムのものではなく、プライマリ・テーブルは実際にはUNIONビューであり、外部キーは何よりもコンベンショナルです。楽しくない。 :-( – bryanjonker
EFでは、ビューも非常にうまくサポートされていません。特に、EFは、複合主キーの一部としてnull不可能なフィールドを扱います。おそらく、ここで関係を作成することはできません。 –