Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/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
C# 尝试枚举空IQueryable时出现NullReferenceException_C#_.net_Linq_Linq To Entities - Fatal编程技术网

C# 尝试枚举空IQueryable时出现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

当我尝试将以下LINQ转换为EF查询时,我得到一个NullReferenceException。这里可能出了什么问题

            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,但我就是这样开始的。当我使用额外的列表时,我正在分解它。