如何在 C# 中将 DTO 提供给 LINQ select 许多查询

how to give DTO to LINQ select many query in c#

如何将 DTO 提供给 select 或 SelectMany

public class PersonDTO
            {
                public int Id { get; set; }
                public string Name { get; set; }
                public string UserName { get; set; }
                public string Email { get; set; }
            }

var person = _context.Persons.Where(x=>x.PersonId==1).SelectMany(PersonDTO);

我想建立一个我给模型或 DTO 的服务,它 returns 只有模型或 DTO 中给出的原始数据,但仅来自人 table 或用户详细信息 table

这意味着类似 graphql 的东西通过 DTO 获取数据,而 DTO 可以是 Only Name 或 UserName 或 Email 或所有这些,任何想法?

_context.Persons.Where(x => x.PersonId == 1).Select(x => typeof(PersonDTO)); 不会自动映射您的类型。

当“手动”执行时,您可能想要的是这样的:

_context.Persons
           .Where(x => x.PersonId == 1)
           .Select(x => new PersonDto(){
                Id = x.Id,
                Name = x.Name,
                UserName = x.UserName,
                Email = x.Email
            });