本帖最后由 netspider0533 于 2013-08-29 00:02:31 编辑

解决方案 »

  1.   

     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.Key
                                  VAT = x.Sum(y => y.VAT),
                                  IncomeTax = x.Sum(y => y.IncomeTax),
                                  ConsumptionTax = x.Sum(y => y.ConsumptionTax)
                              });
      

  2.   

    Town只是一个int?,而Towns是一个实体,Town=x.Key只是取到了Towns的主键,而我想要的是实体
      

  3.   

     Town = x.First().PBInfo==null?null:x.First().PBInfo.Towns或者你根据x.Key去取实体
      

  4.   


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

  5.   

    如果group by 改成x.PBInfo.Towns(实体),分组中会出现x.Key.Towns为null的情况,而实际数据库中并没有null的数据
      

  6.   


    根据x.key查实体,是不是变成多次查询数据库了?
    EF也是支持延迟查询的啊