代码之家  ›  专栏  ›  技术社区  ›  chuckd

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

  •  0
  • chuckd  · 技术社区  · 6 年前

    我有一个类似这样的查询,如果没有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实体中。

    1 回复  |  直到 6 年前
        1
  •  2
  •   user9405863    6 年前

    试试这个。这可以修复您的错误,检查 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();