Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Null EF代码首先延迟加载空子对象_Null_Ef Code First_Lazy Loading - Fatal编程技术网

Null EF代码首先延迟加载空子对象

Null EF代码首先延迟加载空子对象,null,ef-code-first,lazy-loading,Null,Ef Code First,Lazy Loading,下午好 我在延迟加载空子对象时遇到问题。考虑下面的代码: // 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.R

下午好

我在延迟加载空子对象时遇到问题。考虑下面的代码:

// 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网格中使用

但是,没有品牌或型号名称未知的维修。它似乎跳过了品牌或型号为空的维修。我错过了什么


提前谢谢

我将使用以下语法解决此问题:

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,并尝试调试以查找一些错误信息。别忘了包括在内。但我认为问题在于datacontext中的reutrn类型


我希望这会对你有所帮助。

为什么不做以下选择x=>x.ModelId==0 | |。。。而不是在新列表中列出修复对象,您只需访问并创建视图模型即可。@BassamAlugili这确实是一个可靠的解决方法。然而,我正试图弄明白为什么上面的行为是这样的。