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这确实是一个可靠的解决方法。然而,我正试图弄明白为什么上面的行为是这样的。