0

1-Mの関係では、関係の多くの側面で、次のようなものを使用して別のクエリを実行せずに、親アイテムのIDを引き出すことができます。

this.ParentReference.EntityKey.EntityKeyValues[0].Value

しかし、別のクエリを実行せずに1から多くのIDを引き出す同様の方法があるかどうか疑問に思っていますか?

乾杯アンソニー

4

1 に答える 1

1

いいえ、関係を熱心にロード(またはプロジェクト)しない限り、そうではありません。

をロードする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
        };
于 2010-03-03T13:11:01.883 に答える