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
};