1

こんにちは、

null 子オブジェクトの遅延読み込みに問題があります。次のコードを検討してください。

// Retrieve all repairs
var repairs = this.db.Repairs.Include("Brand").Include("Model");

// JUST FOR TESTING PURPOSES
// Some repairs do not have a brand or model. This query returns about 14 results
var reps = this.db.Repairs.Where(r => r.ModelId == 0 || r.BrandId == 0);

// Map the repairs to the viewmodel
var ret = repairs.Select(qRepair => new RepairListViewModel
{
    Brand = qRepair.Brand == null ? "Unkown" : qRepair.Brand.Name,
    CompanyName = qRepair.User.CompanyName,
    CustomerName = qRepair.CustomerName,
    Created = qRepair.Created,
    DamageNumber = qRepair.DamageNumber,
    Id = qRepair.Id,
    Model = qRepair.Model == null ? "Unkown" : qRepair.Model.Name,
    OrderNumber = qRepair.Order.OrderNumber,
    Printed = qRepair.Printed,
    Status = qRepair.Status
});

この後、剣道 UI グリッドで使用するためにリストが返されます。

ただし、ブランド名またはモデル名が「不明」の場合、修理はありません。ブランドまたはモデルが null の場合、修理をスキップするようです。ここで何が欠けていますか?!

前もって感謝します!

4

1 に答える 1

0

問題には次の構文を使用します。

var query = from pro in db.Repais
      select new {
                   Brand = qRepair.Brand == null ? "Unkown" : qRepair.Brand.Name,
                   CompanyName = qRepair.User.CompanyName,
                   CustomerName = qRepair.CustomerName,
                   Created = qRepair.Created,
                   DamageNumber = qRepair.DamageNumber,
                   Id = qRepair.Id,
                   Model = qRepair.Model == null ? "Unkown" : qRepair.Model.Name,
                   OrderNumber = qRepair.Order.OrderNumber,
                   Printed = qRepair.Printed,
                   Status = qRepair.Status
                  };

return query.ToList<Object>();

あなたのコードの問題を正確に言うことはできません。VS で Linq dll を読み込んで、デバッグを試みてエラー情報を見つけることができます。インクルードを忘れないでください。しかし、データコンテキストのreutrn型が原因で問題があると思います。

これがあなたを助けることを願っています。

于 2013-08-30T15:15:13.993 に答える