2016-10-11 2 views
0

konvertieren Ich versuche, alle Daten von Member anzuzeigen, indem Sie Vornamen und zusammenführen Nachname zu Name. Die Funktion ist erfolgreich. Aber es beginnt mir eine Fehlermeldung zu geben, wenn ich versuche, die ausgewählte Funktion wie folgt zu schreiben:Kann den Typ 'System.Collections.Generic.List <AnonymousType # 1>' nicht in '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(); 

    } 

jede Hilfe

+0

Sie Rückkehr neue unbekannte (anonym) geben mit 'new {}' und Ergebnis erwartet – Reniuz

+0

von 'Member' Typ sein Entweder Ihrer Funktion Rückkehr Typ' list' oder entfernen '' ändern .ToList() von Ihre Rückkehr. – uTeisT

+0

Ich habe alles, was Sie sagten, und auch verschiedene Arten von Fehlern basierend auf dem zurückgegebenen Wert – Mai

Antwort

1

Sie schaffen eine anonymous Art in Ihrer SELECT-Anweisung ohne jede Art angibt. Zur gleichen Zeit ist Ihre Funktion Rückgabetyp IQueryable<Member> und am Ende Ihrer Funktion geben Sie eine Liste von anonymousobject Typ zurück. Sie müssen den Funktionsrückgabetyp und die Rückgabedaten zuordnen. Hier ist meine Lösung

zunächst eine Modellklasse für Rückgabedaten erstellen gleichnamigen MemberReturn Sie Ihre Funktion Rückkehr Typnamen als Ihre Wahl

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

} 

Wählen Sie dann Daten in Linq-Abfrage als MemberReturn Typ und ändern List<MemberReturn> verwenden können

[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

Ich tat als Ihre Antwort, aber ich habe einen Fehler "'MH_CRUD_Model.Member' enthält keine Definition für 'Name'" – Mai

+1

ok dann Zeig mir deinen 'Member' Klassencode Ich werde ihn lösen – Mostafiz

+0

public class Member { [Key] public int Id {get; einstellen; } // FK Feld public int ProjectId {get; einstellen; } // Mitgliedsname Feld [Erforderlich] öffentliche Zeichenfolge Vorname {get; einstellen; } öffentliche Zeichenkette Nachname {get; einstellen; } // Titelfeld öffentliche Zeichenfolge Titel {get; einstellen; } // Navigation Property öffentliches Projekt Project {get; einstellen; } } – Mai

Verwandte Themen