2011-01-17 9 views
1

Ich habe den folgenden Code, der Ergebnisse aus einer Datenbank zurückgibt, wo columnName = Y'. Die Codewörter sind in Ordnung, bis ich einschränken möchte, welche Felder von der Abfrage zurückgegeben werden.Rückgabe mehrerer Felder zurück von einem Linq Lambda

Ich erhalte den Fehler

kann nicht implizit Typ 'System.Linq.IQueryable [AnonymousType # 1]' auf 'System.Linq.IQueryable [MyApp.Models.Approved] konvertieren. Eine explizite Konvertierung vorhanden ist (möglicherweise fehlt eine Guss?)

public IQueryable<Approved> ReturnRecordsByObjectiveFlag(string columnName) 
    { 
     var param = Expression.Parameter(typeof(Approved), "x"); 
     var predicate = Expression.Lambda<Func<Approved, bool>>(
      Expression.Equal(
       Expression.PropertyOrField(param, columnName), 
       Expression.Constant('Y',typeof(char?)) 
      ), param); 
     return db.Approved.Where(predicate).Select(x =>new{x.RefNo, x.RefGroup, x.Location }); 
    } 

es auf dieser Linie ist, dass ich den Fehler

return db.Approved.Where(predicate).Select(x =>new{x.RefNo, x.RefGroup, x.Location }); 

Aufenthaltsorte lese ich die Besetzung machen?

Vielen Dank an Marc GRA für Answering an earlier question auf dieser gleichen Methode

Antwort

6

Diese

return db.Approved.Where(predicate).Select(x =>new Approved{x.RefNo, x.RefGroup, x.Location }); 

funktionieren sollte Es gibt diesen Fehler, weil die select-Anweisung wird einen anonymen Typ

+0

Ich habe das tatsächlich früher versucht, aber ich bekomme den Fehler: Kann Typ 'MyApp.Models.Approved' mit einem Sammlung Initialisierer nicht initialisieren, weil es 'System.Collections.IEnumerable' nicht implementiert – MrBliz

+1

Sie könnten stattdessen Property Initialiser verwenden : new Approved() {PROPERTYNAME = VALUE, PROP2 = VAL2 etc ...} Mit den Eigenschaften für Ihre Approved-Klasse. – Massif

+0

Sorted, danke Jungs. – MrBliz

1

Versuchen Sie, den folgenden Code zu schaffen .

return db.Approved.Where(predicate).Select(x =>new {x.RefNo, x.RefGroup, x.Location }); 

Wie es das anonyme Objekt erstellen.

Verwandte Themen