0

打电话时query.ToList()我得到

你调用的对象是空的

对于x.Gallons,所有订单都设置了这个值,它不为空。此外,数据库表中有 2 个具有正确 ID 的 DProduct。有什么问题?

ProductSummaryCollection.Clear();

var query = from p in Repository.repository.ctx.DProduct
            join fo in Repository.repository.ctx.DFuelOrder.Include("DProduct")
            on p.ID equals fo.DProductID
            group fo by fo.DProduct into Prod
            select new DProductSummary
            { 
                Product = fo.DProduct,
                TotalGallons = (float)Prod.Sum(x => x.Gallons)
            };
try
{
    IList<DProductSummary> ps = query.ToList();

    foreach (DProductSummary dps in ps)
        ProductSummaryCollection.Add(dps);
}
catch (Exception exc)
{
}
4

1 回答 1

0

看来你不能做以下两件事:

  1. 在我的情况下,在 linq 查询中创建一个实体对象 DProduct
  2. 即使您包含它,您也无法访问 linq 查询中的引用所以您必须改用连接 table.Propery。一个工作查询:

        var query = from fo in Repository.repository.ctx.DFuelOrder.Include("DProduct")
                    join p in Repository.repository.ctx.DProduct
                    on fo.DProductID equals p.ID
                    group fo by new { fo.DProductID, p.Name } into Prod
                    select new DProductSummary
                      {
                          ProductName = Prod.Key.Name,
                          TotalGallons = (float)Prod.Sum(x => x.Gallons)
                      };
    
于 2012-06-02T13:25:38.033 回答