【问题标题】:check for null before getting property in linq to sql query在 linq to sql 查询中获取属性之前检查 null
【发布时间】:2018-04-04 05:04:34
【问题描述】:

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

【问题讨论】:

  • 您的意思是当RegisteredInstructor 为空时?
  • 在 where 条件下也包括 RegisteredInstructor 空检查。

标签: asp.net-mvc entity-framework linq linq-to-sql entity


【解决方案1】:

试试这个。这可以解决你的错误,检查j.RegisteredInstructor是否为空。

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();

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多