无法隐式转换类型&#39; System.Collections.Generic.List <anonymoustype#1>&#39; to&#39; System.Linq.IQueryable <mh_crud_model.member>&#39;

时间:2016-10-11 07:20:15

标签: c# api linq-to-entities

我试图通过将名字和姓氏合并到名称来显示会员的所有数据。 功能成功。但是当我尝试编写像这样的select函数时,它开始给我错误:

    [HttpGet]
    [Route("api/Members")]
    public IQueryable<Member> GetMembers()
    {
        var member = db.Members.Select(m=>
            new{
                Name = m.LastName +" "+ m.LastName,
                m.Title,
                m.ProjectId
            });
        return member.ToList();

    }

任何帮助

1 个答案:

答案 0 :(得分:1)

您正在select语句中创建anonymous类型而不指定任何类型。同时,您的函数返回类型为IQueryable<Member>,在函数末尾,您将返回anonymous object类型的列表。您需要匹配函数返回类型和返回数据。这是我的解决方案

首先为名为MemberReturn的返回数据创建一个模型类,您可以使用名称作为选择

class MemberReturn
{
    public string Name { get; set; }
    public string Title { get; set; }
    public string ProjectId { get; set; }

}

然后在linq查询中选择数据为MemberReturn类型,并将函数的返回类型更改为List<MemberReturn>

[HttpGet]
[Route("api/Members")]
public List<MemberReturn> GetMembers()
{
    var member = db.Members.Select(m=>
            new MemberReturn {
                Name = m.FirstName + " " + m.LastName,
                Title = m.Title,
                ProjectId = m.ProjectId
            });
    return member.ToList();

}