1

私はlinqクエリを持っています:

var query = from ct in ClaimTypes
            join c in Claims.OrderBy(x => x.ClaimValue)
                            .Include("SubClaims") on ct.ClaimTypeId equals c.ClaimTypeId into t
            select new { ct.ClaimTypeName, t };

結果は、キーがクレームの種類であり、値がそのクレームの種類のクレームのリストであるクレームのディクショナリでした。クレームの中には、サブクレームと呼ばれる列があります。ただし、サーバーの問題により遅延読み込みをオフにしたため、サブクレーム列に値が入力されなくなりました。JOIN 内で INCLUDE を使用しても、列は設定されません。誰でも他の解決策を提案できますか?

4

1 に答える 1

1

結果セットで t.SubClaims を返していません。インクルードは、最終的な選択ではなく、サブクエリに適用されます。SQL プロファイラーを実行して、最終的な選択セットに SubClaims フィールドが含まれていないことを確認します。

試す:

select new { ct.ClaimTypeName, t, t.SubClaims };

または:

var query = /* you're query */;
query = query.Include(a => a.t.SubClaims);
于 2012-12-19T21:19:47.563 に答える