2016-10-11 117 views
0

我試圖通過合併名字來顯示成員的所有數據,姓氏到姓名。 該功能成功。但是,它開始給我的錯誤,當我嘗試寫select函數是這樣的:不能隱式地將類型'System.Collections.Generic.List <AnonymousType#1>'轉換爲'System.Linq.IQueryable <MH_CRUD_Model.Member>'

[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(); 

    } 

任何幫助

+0

您返回新的未知(匿名)與新'{}'和結果預計將是'Member'類型 – Reniuz

+0

要麼改變你的函數的返回類型爲'List'或刪除'.ToList(類型)從'你的回報。 – uTeisT

+0

我做了你所說的一切,並根據返回的值也做出不同種類的錯誤 – Mai

回答

1

你不指定任何類型的創建在你的SELECT語句的anonymous類型。同時,您的函數返回類型爲IQueryable<Member>,並且在函數結束時返回anonymousobject類型的列表。您需要匹配函數返回類型並返回數據。這裏是我的解決方案

首先創建一個模型類一樣返回數據名爲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(); 

} 
+0

我做了你的回答,但是我得到了一個錯誤 「'MH_CRUD_Model.Member'沒有包含'Name'的定義」 – Mai

+1

ok給我看你的'會員'級代碼我會解決的 – Mostafiz

+0

public class Member {Key1] public int Id {get;組; } // FK字段 public int ProjectId {get;組; } //成員名稱字段 [必需的] public string FirstName {get;組; } public string LastName {get;組; } //標題字段 public string Title {get;組; } //導航欄 public Project Project {get;組; } } – Mai

相關問題