c# - 使用 DefaultIfEmpty 加入 LINQ 仍然导致 NullReferenceException

标签 c# asp.net linq asp.net-mvc-4 asp.net-mvc-3

是否真的有可能在连接语句上引发 NullReferenceException,即使它具有 DefaultIfEmpty() 代码?

     var getWorkerList = (from a in workerList
                         join ps in db.ProjectStatus on a.StatusId equals ps.StatusId into hjps
                         from ps in hjps.DefaultIfEmpty()
                         join psc in db.StatusColor on ps.StatusCode equals psc.StatusCode into hjpsc
                         from psc in hjpsc.DefaultIfEmpty()
                         join lu in db.LOOKUPS on psc.StatusColorID equals lu.LOOKUPS_ID into hjlu
                         from lu in hjlu.DefaultIfEmpty()
                         select new WorkerModel()
                         {
                            FullName = a.FullName
                            ,Color = lu.LOOKUPS_Code                  
                         }).OrderBy(a => a.WorkerId).ToList();

这是我得到 NullReferenceException 错误的地方:

join lu in db.LOOKUPS on psc.StatusColorID equals lu.LOOKUPS_ID into hjlu
                         from lu in hjlu.DefaultIfEmpty()

添加此连接语句时出现错误。请帮忙。

最佳答案

.DefaultIfEmpty() 如果原始源为空,则返回具有单个默认值的序列。

它仍然会抛出空引用异常,如果原始源为空

关于c# - 使用 DefaultIfEmpty 加入 LINQ 仍然导致 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55019297/

相关文章:

c# - EF 中的多个 where 条件

c# - 来自 List<T> 的数据拆分为另一个具有 2 个嵌套 List<T> 的 List<T>

c# - Dapper 异常 - Get<T> 仅支持具有 [Key] 属性的实体,但已定义 [key]

C# 枚举与数据驱动列表

asp.net - 如何在ASP.NET WebForms中实现TDD

asp.net - 从字符串 "31/03/2012"到类型 'Date' 的转换无效

c# - 如何使用 LINQ 查询加入枚举

.net - Linq 查询不返回 IEnumerable

c# - 如何在运行时更新(添加/修改/删除)web.config 的 AppSettings 部分中的键

c# - 在组合框中显示数据库值之前显示初始值和空字符串