在 linq to sql 查询中获取 属性 之前检查空值

check for null before getting property in linq to sql query

我有一个看起来像这样的查询,如果没有 RegisteredInstructor,则会抛出错误。有没有办法解决这个问题或在 linq 查询期间进行检查?

viewModel.SpaceEvents = yogaSpace.YogaSpaceEvents.Where(j => j.EventDateTime >= DateTime.Now).Select(j => new EventResult
                {
       RegsiteredInstructorName = j.RegisteredInstructor.Name,
       RegisteredInstructorId =   j.RegisteredInstructor.RegisteredTeacherId,
       RegisteredTeacherImage =   j.RegisteredInstructor.RegisteredTeacherImage
 }).ToList();

其中 RegisteredInstructor 是

public virtual Profile RegisteredInstructor { get; set; }

在我的 YogaSpaceEvents 实体中。

尝试 this.This 可以修复您的错误,检查 j.RegisteredInstructor 是否为 null。

viewModel.SpaceEvents = yogaSpace.YogaSpaceEvents
                               .Where(j => j.EventDateTime >= DateTime.Now)
                               .Select(j => new EventResult
                {
       RegsiteredInstructorName = j.RegisteredInstructor!= null?j.RegisteredInstructor.Name:"",
       RegisteredInstructorId =   j.RegisteredInstructor!= null?j.RegisteredInstructor.RegisteredTeacherId:0,
       RegisteredTeacherImage =   j.RegisteredInstructor!= null?j.RegisteredInstructor.RegisteredTeacherImage:""
                }).ToList();