列表添加到视图模型

时间:2020-07-28 18:17:05

标签: c# entity-framework linq

如果x.ChildPeople为null,那么我将尝试使用Value cannot be null.时收到错误x.ChildPeople.any()。有其他方法吗?

var listOfPeople= es.GetPeople().Select(x => new PeopleViewModel
                  {
                     PeopleId = x.PeopleId,
                     Name = x.Name,
                     Child = x.ChildPeople.Select(c => new PeopleViewModel
                             {
                                PeopleId = c.PeopleId,
                                Name = c.Name
                             }).ToList()
                   }).ToList();

2 个答案:

答案 0 :(得分:1)

null运算符与x.ChildPeople一起使用

Child = x.ChildPeople?.Select(c => new PeopleViewModel
         {
            PeopleId = c.PeopleId,
            Name = c.Name
         }).ToList() 

答案 1 :(得分:0)

使用?是一个很好的情况。运算符:

 Child = x.ChildPeople?.Select(c => new PeopleViewModel
 {
   PeopleId = c.PeopleId,
   Name = c.Name
 }).ToList()

请注意,如果c用于特定元素,则Child将为空。

最好潜入if语句并检查c是否为null,然后执行某种自定义逻辑:

 if (x.ChildPeople == null)
 {
   Child = new PeopleViewModel();
 }
 else
 {
   Child = x.ChildPeople.Select(c => new PeopleViewModel
   {
      PeopleId = c.PeopleId,
        Name = c.Name
      }).ToList()
   }
 }