[英]Null exception in LINQ statement, but returns results in LINQPAD
我下面有一个LINQ语句,该语句应将110条记录返回到我的视图。 当我检查SQL Server时,我的表中有记录,但是当我尝试基于一个ID检索这些记录并执行@foreach(var item in Model)
导致空引用错误。 任何帮助,将不胜感激。
LINQPAD-返回110条记录(RPT是模式)
RPT.Team_History.OrderByDescending (r => r.DateOfAction).Where(r => r.MgrID ==212)
控制器代码 (使用DB First方法。当VS生成模型时,删除了RPT模式)
public PartialViewResult _TeamTransitionDisplay()
{
var mgrID = 212;
IEnumerable<TeamHistoryViewModel> teamHistory;
teamHistory = db.Team_History
.Where(x => x.MgrID == @mgrID)
.Select(x => new TeamHistoryViewModel
{
DateOfAction = x.ActionDate,
DeptID = x.DeptID,
Operation = x.Operation,
StartDate = x.StartDate,
AStartDate = x.AStartDate,
FStartDate = x.FStartDate
}).ToList();
return PartialView("_TeamDisplay", teamHistory);
}
[NullReferenceException:对象引用未设置为对象的实例。
意见将不胜感激。
我认为,当它尝试获取您的模型值之一时,它可能为null,因此引发错误。您可以尝试对可为空的属性添加此检查,如果只有nullable,则检查是否为null,我添加了所有这些,因为我不知道哪个可以为空
teamHistory = db.Team_History
.Where(x => x.MgrID == @mgrID)
.Select(x => new TeamHistoryViewModel
{
DateOfAction = (x.ActionDate != null ? x.ActionDate : something here when null),
DeptID = (x.DeptID!= null ? x.DeptID: 0),
Operation = (x.Operation!= null ? x.Operation: "operation"),
StartDate = (x.StartDate!= null ? x.StartDate: DateTime.MinValue),
AStartDate = (x.AStartDate != null ? x.AStartDate : DateTime.MinValue),
FStartDate = (x.FStartDate != null ? x.FStartDate : DateTime.MinValue)
}).ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.