C# 尝试枚举空IQueryable时出现NullReferenceException
当我尝试将以下LINQ转换为EF查询时,我得到一个NullReferenceException。这里可能出了什么问题C# 尝试枚举空IQueryable时出现NullReferenceException,c#,.net,linq,linq-to-entities,C#,.net,Linq,Linq To Entities,当我尝试将以下LINQ转换为EF查询时,我得到一个NullReferenceException。这里可能出了什么问题 List<DailyProductionRecord> prodRecs = new List<DailyProductionRecord>(); var recs = from p in productionEntities.DailyProductionRecordSet
List<DailyProductionRecord> prodRecs = new List<DailyProductionRecord>();
var recs = from p in productionEntities.DailyProductionRecordSet
where ((p.Department.DeptId == dept.DeptId) && (p.RecordDate >= thisPeriodStart) && (p.RecordDate < nextPeriodStart))
select p;
prodRecs = recs.ToList();
List prodRecs=new List();
var recs=来自productionEntities.DailyProductionRecordSet中的p
其中((p.Department.DeptId==dept.DeptId)&&(p.RecordDate>=本期开始)&(p.RecordDate
编辑:我刚刚发现我太快了,我的部门标准为空。是p。部门可以为空?是p。部门可以为空?除了访问对象上可以为空的属性之外(
p.Department
和dept
都可以为空),您还将实例化一个从未使用过的新列表。因此,您的示例可以这样编写:
List<DailyProductionRecord> prodRecs = (from p in productionEntities.DailyProductionRecordSet
where ((p.Department.DeptId == dept.DeptId) && (p.RecordDate >= thisPeriodStart) && (p.RecordDate < nextPeriodStart))
select p).ToList();
List prodRecs=(来自productionEntities.DailyProductionRecordSet中的p
其中((p.Department.DeptId==dept.DeptId)&&(p.RecordDate>=本期开始)&(p.RecordDate
除了访问可以为null的对象的属性(p.Department
和dept
都可以为null)之外,您还实例化了一个从未使用过的新的列表。因此,您的示例可以这样编写:
List<DailyProductionRecord> prodRecs = (from p in productionEntities.DailyProductionRecordSet
where ((p.Department.DeptId == dept.DeptId) && (p.RecordDate >= thisPeriodStart) && (p.RecordDate < nextPeriodStart))
select p).ToList();
List prodRecs=(来自productionEntities.DailyProductionRecordSet中的p
其中((p.Department.DeptId==dept.DeptId)&&(p.RecordDate>=本期开始)&(p.RecordDate
不完全正确,但dept为空。足够接近。不完全接近,但dept为空。够近了。谢谢@Ronald,但我就是这样开始的。当我使用额外列表时,If只是分解了这个。谢谢@Ronald,但我就是这样开始的。当我使用额外的列表时,我正在分解它。