【问题标题】:Linq Convert anonymous to entity object by selectLinq通过select将匿名转换为实体对象
【发布时间】:2020-05-26 09:41:41
【问题描述】:
var reassignForms = _formQueryRepository.WithRelatedEntities()
            .Where(x => x.Id == formId && x.SchoolId == schoolId)
            .Select(y => y.FormUsers.Where(m => m.CanEdit).Select(z => new ReassignFormDTO
            {
                Name = z.UserProfile.FullName,
                Id = z.UserProfile.Id,
                Email = z.UserProfile.Email,
                Role = z.UserProfile.UserRole,


            }));

我想将其转换为ReassignFormDTO,但不知何故它返回了一个我无法转换的对象。我希望这是直接对象而不是 [0].objects。

【问题讨论】:

  • 你试过SelectMany,把第一个Select改成SelectMay结果会是ReassignFormDTO的列表
  • .SelectMany(y =>
  • 对象引用未设置为对象的实例。关于使用 .SelectMany(y =>
  • 计数为 2。所以顶层是单个项目,而第 2 层是数组。因为您有两个选择,所以您需要使用 SelectMany 将级别从 2 减少到 1。
  • @SunilSingh 请分享完整的代码示例和预期结果,其他人可以重现

标签: c# linq linq-to-sql


【解决方案1】:

您可以使用.FirstOrDefault(),然后它将从 linq 查询返回第一个实体。根据调试窗口,您有两个 ReassignFormDTO 对象,并且您似乎只想获得一个。

请提供更多详细信息,以便我们提供更多帮助。不知道我之前的回答对你有没有帮助。

编辑:我没有注意到你声明中的第二个选择。根据 cmets .SelectMany(z => z) 应该可以帮助你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 2015-04-25
    • 2011-11-27
    相关资源
    最近更新 更多