3

データベース テーブルから作成された次のエンティティがあるとします。

学生

Student は、ナビゲーション プロパティとして Person を含めます。

Person には、ルックアップ テーブル Country を接続するためのナビゲーション プロパティ Country があります。

Student メタデータでは[Include]、ナビゲーション プロパティ Person を配置します。Person メタデータでは[Include]、ナビゲーション プロパティ Country を指定します。

生徒のデータをロードするときは、Person と Country のデータを含めるように熱心にロードしたいと考えています。

this.ObjectContext.Students.Include("Person").Include("Country");

以前のバージョンの ASP.NET Data Ria Service を使用すると、これは正常に機能していました。WCF Ria Service に変更すると、上記の方法が機能しなくなりました。国は学生のナビゲーション プロパティではないというエラーが表示されます。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

エラーは正しいです。

IncludeObjectQuery<T>この場合は「学生」です。

CountryPersonではなくのナビゲーション プロパティですStudent

コードを次のように変更します。

this.ObjectContext.Students.Include("Person").Include("Person.Country");

または単に:

this.ObjectContext.Students.Include("Person.Country");

EF は、ネストされたインクルードに基づいて「Person」を自動的に含めます。

が呼び出された に基づいて をInclude返すことを覚えておく必要があります。ObjectQuery<T>ObjectQuery<T>

したがって、あなたが を行ったからといってStudents.Include("Person")、それはその時点で変数がObjectQuery<Person>- 変数がまだであるという意味ではありませんObjectQuery<Student>

于 2010-11-26T00:21:55.627 に答える