0

を呼び出すとquery.ToList()

オブジェクト参照がオブジェクト インスタンスに設定されていません

の場合x.Gallons、すべての注文にこの値が設定されています。null ではありません。また、データベース テーブルには適切な ID を持つ 2 つの DProducts があります。何が間違っている可能性がありますか?

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

以下の2点ができないようです。

  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 に答える