2017-05-20 10 views
0

を生成します最初の5つの親レコードの1つのクエリ、次に子グループの各グループを要約する5つのクエリです。与え最初のクエリに参加Entity FrameworkのコアGroupJoin&GROUPBYは、私は、その後、5つの親レコードを照会するために、すべての子カテゴリとカウントの概要をしようとしています、予期しないSQL

SELECT [p].[Id], [p].[Category] 
FROM [Child] AS [p] 

私は左のを期待していなかった。その後、

exec sp_executesql N'SELECT [child].[Id], [child].[Category], [t].[Id] 
FROM (
    SELECT TOP(@__p_0) [s0].* 
    FROM [Parent] AS [s0] 
) AS [t] 
LEFT JOIN [Child] AS [child] ON [t].[Id] = [child].[ParentId] 
ORDER BY [t].[Id]',N'@__p_0 int',@__p_0=5 

と、この、5回:

はしかし、EF7に、私はこのクエリを取得します私はすべての子供の記録。

これはクエリに問題がありますか?

答えて

0

これを部分的に把握しました。子クラスはParentParentIdの両方があります。しかし、私は今のようです別のエラーを持っている

outerKeySelector: parent => parent, 
innerKeySelector: child => child.parent 

を:

public class Child 
{ 
    [Key] 
    public virtual Guid Id { get; set; } 

    [Required] 
    public virtual Parent Parent { get; set; } 

    public virtual Guid ParentId { get; set; } 

} 

のでselectorは、必須フィールドParentを使用すべきではない「ParentId` EFコアバグになる:

System.ArgumentException : Property 'MyApp.Models.Parent Parent' is not defined for type 'MyApp.Models.Parent' 
Parameter name: property 
    at System.Linq.Expressions.Expression.Property(Expression expression, PropertyInfo property) 
    at System.Linq.Expressions.Expression.MakeMemberAccess(Expression expression, MemberInfo member) 
    ... 

私はこれがfixed in a prerelease version of EF Core 2だと思います。

関連する問題