读书人

EF,Select New领航属性取不到

发布时间: 2013-09-06 10:17:17 作者: rapoo

EF,Select New导航属性取不到
本帖最后由 netspider0533 于 2013-08-29 00:02:31 编辑


var sumnow = (from m in astw
group m by new { m.PBInfo.Town } into x
select new
{
PbInfoCount = x.Select(t => t.PBID).Distinct().Count(),
PBInfo = x.First().PBInfo,
Town = x.First().PBInfo.Towns, //第二级的导航属性取不到
VAT = x.Sum(y => y.VAT),
IncomeTax = x.Sum(y => y.IncomeTax),
ConsumptionTax = x.Sum(y => y.ConsumptionTax)
});


上述代码ToList的时候会报nullreferenceexception 错误,select new时只能取到第一级的导航属性,有什么办法取第二级,第三级的
ps.如果select new下断点调试是可以取到的


[解决办法]

引用:
Quote: 引用:

Town = x.First().PBInfo==null?null:x.First().PBInfo.Towns

或者你根据x.Key去取实体


根据x.key查实体,是不是变成多次查询数据库了?

EF也是支持延迟查询的啊

读书人网 >C#

热点推荐