没有关闭延迟加载时,列不会填充

时间:2012-12-19 20:47:42

标签: c# linq entity-framework lazy-loading lazy-evaluation

我有一个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不会填充列。任何人都可以建议任何其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

您没有在结果集中返回t.SubClaims。包含适用于子查询,而不是最终选择。运行SQL事件探查器以确认最终选择集不包含SubClaims字段。

尝试:

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

或者:

var query = /* you're query */;
query = query.Include(a => a.t.SubClaims);