选择“创建新对象不设置第二级实体”

本文关键字:二级 实体 设置 新对象 对象 选择 创建 | 更新日期: 2023-09-27 18:06:15

我在创建一个新对象时遇到了一个问题,就像下面的例子一样,当设置参数Users时不包括子实体Address

这个问题只是在传递给一个新对象时发生。

var services = _serviceDbSet
                  .Include(b => b.Users)
                  .Include(b => b.Users.Select(x => x.Address))
                  .Select(s => new    
                               {
                                    Id = s.Id,
                                    Users = s.Users
                               });

选择“创建新对象不设置第二级实体”

尝试实现如下的用户集合

.Select(s => new    
{
Id = s.Id,
Users = s.Users.ToList()
}).ToList();

在这种情况下,您可以在内存中进行投影(Select)。

var services = _serviceDbSet
              .Include(b => b.Users)
              .Include(b => b.Users.Select(x => x.Address))
              .ToList()
              .Select(s => new    
                           {
                                Id = s.Id,
                                Users = s.Users
                           });

在这种情况下,投影将包含带有代理的对象/包括