1

シナリオMVCNerdDinnerプロジェクトをプレイしていて、代わりに'dbml'でado.netエンティティデータモデルを使用しています

2つのデータベーステーブルDinnerとRSVPがあり、RSVPにはDinnerテーブルの外部キーとしてDinnerIDが含まれています。

これで、Dinnerテーブルから特定のレコードにアクセスすると、RSVPプロパティを持つdinnerオブジェクトが返されますが、RSVPテーブルにDinnerテーブルからの外部キーを持つデータがあるにもかかわらず、そのプロパティを持つデータはありません。

データ

夕食のテーブル

ID:1
タイトル:'。Netアーキテクチャ'

RSVPTable

ID:1
ディナーID:1
参加者名前:'ミラル'

ID:2
ディナーID:1
参加者名前:'Shivani'

したがって、子RSVPデータを返す必要があるDinnerデータをフェッチすると、0レコードのRSVPプロパティが取得されます。

4

2 に答える 2

2

EF は LINQ とは少し異なります。クエリに、次のようなものを追加します

var dinner = context.Dinners.First(d => d.DinnerID = id).Include("Attendees");

これにより、関連する参加者オブジェクトを 1 回のフェッチでアタッチするように EF に指示され、必要なすべての結合が行われます。

于 2009-06-09T10:55:07.330 に答える
1

正しい構文

表 : 「夕食」と「出欠確認」

var dinner =_nerdDinnerEntities.Dinner.Include("RSVP").Where(dd => dd.ID == ID).FirstOrDefault();

FirstOrDefault の前に Include を記述する必要があります。

'Include' は、ここ 'Dinner' のエンティティのメソッドであり、外部キー、つまり 'RSVP' とプロパティ 'AttendeeName' を含むテーブル名が含まれています。

プロパティ「AttendeeName」の 1 つを渡そうとしましたが、うまくいきませんでした。

于 2009-06-10T11:49:51.043 に答える