0

私は DBML でビューを使用していますが、これはほとんどの場合、テーブルにマップされます。EVENTCODE ビューに関連する CR ビューがあります。SQL を Console.Out に記録するようにコンテキストを設定し、生成された SQL を DB に対して直接実行しました。3枚のレコードが戻ってきました。しかし、Linq to SQL で select を実行すると (コンテキストで LoadOptions を設定して EVENTCODE テーブルに結び付ける)、CR.EVENTCODEs に 1 つのレコードしかありません。ビュー間の関係は正しいです (データベースと同じ)。context.EVENTCODEs.Where... を呼び出すと、3 つのレコードも返されます。しかし、関連する EVENTCODE レコードを CR オブジェクトから取得すると、1 しか返されません。他に何を確認すればよいですか?

4

1 に答える 1

0

問題は、EVENTCODE ビューで主キーとして識別されたフィールドが、ビュー内のレコードを一意に識別しなかったことです。返される 3 つのレコードはすべて同じキー値を持っていたため、EntitySet は最初のレコードを追加し、後続のレコードはセット内のキーと同じキーを持っていたため無視しました。ビューを変更して (4 つのフィールドにまたがる) 結合キーを使用すると、関連するレコード番号が 3 になりました。

于 2013-02-26T19:40:45.403 に答える