2016-10-11 17 views
0

メンバーのすべてのデータを、姓の名前。 機能は正常です。しかし、それは私はこのような選択関数を記述しようとすると、私にエラーを与えるために開始します。'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

あなたは新しい、未知を返す(匿名)から ')'} { '新しいと入力すると、結果は' List'にあなたの関数の戻り値の型を変更したり、 '.ToListを(削除してくださいMember'タイプ – Reniuz

+0

'であることを期待あなたの復帰。 – uTeisT

+0

返信された値に基づいてエラーの種類と種類を変更しました – Mai

答えて

1

あなたは任意の型を指定せずにSELECT文でanonymousタイプを作成しています。同時に、関数の戻り値の型はIQueryable<Member>であり、関数の最後にはanonymousobject型のリストが返されます。関数の戻り値の型と戻り値のデータを一致させる必要があります。ここに私の解決策

まずMemberReturnあなたがMemberReturn型としてLINQクエリ内のデータを選択し、List<MemberReturn>としてあなたの関数の戻り値の型を変更する次に、あなたの選択肢として

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

} 

を名前を使用することができますという名前のような戻りデータ用のモデルクラスを作成しています

[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あなたの 'Member'クラスコードを見せてください。私はそれを解決します – Mostafiz

+0

public classメンバ { [Key] public int Id {get;セット; } // FKフィールド public int ProjectId {get;セット; } //メンバー名フィールド [必須] public string FirstName {get;セット; } パブリック文字列LastName {get;セット; } //タイトルフィールド 公開ストリングタイトル{get;セット; } //ナビゲーションプロパティ public Project Project {get;セット; } } – Mai

関連する問題