1

親、子、ペットの 3 つの EF ObjectSet があり、1 対多の関連付けがあります (親は多くの子を持つことができ、子は多くのペットを持つことができます)。特定の親について、この親のすべての子が所有するすべてのペットを取得する必要があります。

このクエリが正しいかどうか、またはより効率的にできるかどうかが心配です。

Dim query = From par In context.Parents
            From child In par.Childrens
            From pet In child.Pets
            Where par.parent_id = 1
            Select pet
4

1 に答える 1

0

このクエリは正しいですが、a cross-join- は単にCartesian product2 つのセットの - です。

joinbased onequality条件を明示的に指定できます。

var query = from par  in context.Parents
            join child  in context.Childrens on child.ParentID equals par.ID
            join pet  in context.Products on child.ID equals pet.ChildID
            Where par.parent_id = 1
            select new { par.Name, par.Id };
于 2013-03-14T08:43:29.157 に答える