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
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
Sie könnten stattdessen Property Initialiser verwenden : new Approved() {PROPERTYNAME = VALUE, PROP2 = VAL2 etc ...} Mit den Eigenschaften für Ihre Approved-Klasse. – Massif
Sorted, danke Jungs. – MrBliz