0

Include()モデルに対してLINQで使用する場合、指定するパスパラメータは、関連するオブジェクトの名前またはナビゲーションプロパティの名前にする必要がありますか?

同じテーブルが同じ他のテーブルと複数の関係を持っているので、私は尋ねます。デザイナでは、関連するテーブルのナビゲーションプロパティが次の形式であることに注意してください。

RelatedTable
RelatedTable1
...
RelatedTablen

遅延読み込みがオフになっているため、関連するオブジェクトを明示的に読み込む必要があります。ナビゲーションプロパティを介して関連するオブジェクトのみが必要です: "RelatedTable1"ナビゲーションプロパティ名(つまり "RelatedTable1")をインクルードするように指定してみました。

from row in Table.Include("RelatedTable1")
select row

そしてそれは動作します!これは、パスパラメータがナビゲーションプロパティの名前であることを示唆しています。ただし、関連するエンティティの名前だけを試しました。つまり、次のようになります。

from row in Table.Include("RelatedTable")
select row

そしてそれも機能します!私は何が起こっているのかを理解することを求めています。

(LazyLoadingはオフであり、Include()を使用しない場合、関連はフェッチされません)。

4

1 に答える 1

1

ナビゲーションプロパティの名前を使用することも、次のようにチェーンすることもできます。

db.Tables.Include("RelatedTable.RelatedTable2");

または、強く入力したい場合は 、ラムダとして含めることができます:

db.Tables.Include(x => x.RelatedTable);
于 2012-08-17T23:28:40.090 に答える