2017-12-30 25 views
-1

Ich speichere die zurückgegebenen Elemente in den var-Typ und versuche dann, sie mit dem Listenobjekt zu binden, das vom Typ der Modellklasse ist. Aber während Dabei gibt es eine Fehlermeldung, dassKann den var-Typ nicht in das Listenobjekt konvertieren

kann nicht implizit Typ umwandeln System.collections.generic.list<AnonymousType> zu System.Collections.Generic.List<MyService.Models.EmpModel>

Bitte helfen Sie mir, dieses Problem zu beheben.

public IEnumerable<EmpModel> GetEmpDetailsById(int id) 
{ 
    var EmpList = (from a in EmpDet 
    where a.EmpId.Equals(id) 
    select new { a.EmpId, a.Name, a.City }); 

    List<EmpModel> objList = new List<EmpModel>(); 
    objList = EmpList.ToList(); // gives error here 

    return objList; 
} 

Antwort

1

Sie können diese

in einer Anweisung tun
return (from a in EmpDet 
    where a.EmpId.Equals(id) 
    select new EmpModel 
       { EmpId = a.EmpId, 
       Name = a.Name, 
       City = a.City 
       }).ToList(); 

} 
+0

danke ... es hat für mich geklappt –

1

Der Typ des objList ist List<EmpModel> aber Sie sind ein List von anonymous type zurück. Sie können es wie folgt ändern:

var EmpList = (from a in EmpDet 
    where a.EmpId.Equals(id) 
    select new EmpModel { EmpId = a.EmpId, Name = a.Name, City = a.City }); 

Und wenn Sie noch Fehler bekommen wahrscheinlich ist es, weil Sie nicht auf einem zugeordneten Entität projizieren können, dann müssen Sie mit den benötigten Eigenschaften von der EmpModel Entität wie dies eine DTO-Klasse erstellen:

public class TestDTO 
{ 
    public string EmpId { get; set; } 
    public string Name { get; set; } 
} 

Und dann können Sie:

select new TestDTO { EmpId = a.EmpId, Name = a.Name } 
+0

danke..es hat funktioniert –

Verwandte Themen