【问题标题】:How to return multiple values from anonymous select statement in c#如何从 C# 中的匿名 select 语句返回多个值
【发布时间】:2019-11-27 10:14:59
【问题描述】:

我想在 c# 中返回用户和该用户的所有匹配项目。 我的代码如下所示:

    [HttpGet("{userId}/{projectId}")]
    public IActionResult GetProjectByUserId(int userId, int projectId)
    {
        var project = from up in _context.UserProjects
            where up.ProjectId == projectId && up.UserId == userId
            select new
            {
                UserName = up.User.Username,
                ProjectName = up.Project.Name
            };

        return Ok(project);
    } 

结果我得到了一个用户并参与了项目:

  [
    {
        "userName": "tom",
        "projectName": "Portal"
    }
  ]

在我的情况下,“Tom”有 3 个项目,我想为“Tom”返回每个项目,例如:

  [
    {
        "userName": "tom",
        "projectName": "Portal"
    },
    {
        "userName": "tom",
        "projectName": "Elanor"
    },
    {
        "userName": "tom",
        "projectName": "Kestrel"
    },
  ]

【问题讨论】:

  • 您的查询要求一个具有特定 ProjectID 的项目。删除up.ProjectId == projectId

标签: c# linq asp.net-core


【解决方案1】:

您的选择很好,但您的查询中有 up.ProjectId == projectId,这将其限制为仅您为其提供 id 的项目。

[HttpGet("{userId}/{projectId}")]
public IActionResult GetProjectByUserId(int userId, int projectId)
{
    var project = from up in _context.UserProjects
        where up.UserId == userId
        select new
        {
            UserName = up.User.Username,
            ProjectName = up.Project.Name
        };

    return Ok(project);
} 

【讨论】:

    【解决方案2】:

    删除up.ProjectId == projectId条件

    [HttpGet("{userId}/{projectId}")]
    public IActionResult GetProjectByUserId(int userId, int projectId)
    {
        var project = from up in _context.UserProjects
            where up.UserId == userId
            select new
            {
                UserName = up.User.Username,
                ProjectName = up.Project.Name
            };
    
        return Ok(project);
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 2014-01-18
      相关资源
      最近更新 更多