1-Mの関係では、関係の多くの側面で、次のようなものを使用して別のクエリを実行せずに、親アイテムのIDを引き出すことができます。
this.ParentReference.EntityKey.EntityKeyValues[0].Value
しかし、別のクエリを実行せずに1から多くのIDを引き出す同様の方法があるかどうか疑問に思っていますか?
乾杯アンソニー
1-Mの関係では、関係の多くの側面で、次のようなものを使用して別のクエリを実行せずに、親アイテムのIDを引き出すことができます。
this.ParentReference.EntityKey.EntityKeyValues[0].Value
しかし、別のクエリを実行せずに1から多くのIDを引き出す同様の方法があるかどうか疑問に思っていますか?
乾杯アンソニー
いいえ、関係を熱心にロード(またはプロジェクト)しない限り、そうではありません。
をロードするthis
と、EFはそれ自体で、を含むテーブルからthis
すべてのデータをロードします。JOIN
他のテーブルにはありません。
ロードするParent
と、子IDを含むデータは別のDBテーブルにあります。したがって、EFにロードするように指示しない限りJOIN
、他のテーブルにはありません。
したがって、ロード時に「子」IDが必要になることがわかっている場合は、次のParent
ロードを熱心に行うことができます。
var p = Context.Parents.Include("Children").Where(p => p.Id == id).First();
...またはプロジェクト:
var q = from p in Context.Parents
where p.Id == id
select new
{
Parent = p,
ChildIds = from c in p.Children
select c.Id
};