Wie kann ich einen anonymen Typ von einer Methode zurückgeben?
-
09-06-2019 - |
Frage
Ich habe eine Linq-Abfrage, die ich von mehreren Orten aus aufrufen möchte:
var myData = from a in db.MyTable
where a.MyValue == "A"
select new {
a.Key,
a.MyValue
};
Wie kann ich eine Methode erstellen, diesen Code darin einfügen und sie dann aufrufen?
public ??? GetSomeData()
{
// my Linq query
}
Lösung
IQueryable und IEnumerable beide arbeiten. Aber Sie wollen eine Art spezifische Version, IQueryable<
T>
oder IEnumerable <
T>
verwenden.
So werden Sie wollen eine Art erstellen, um die Daten zu halten.
var myData = from a in db.MyTable
where a.MyValue == "A"
select new MyType
{
Key = a.Key,
Value = a.MyValue
};
Andere Tipps
Eine generische Methode sollten Sie IntelliSense:
public class MyType {Key{get;set;} Value{get;set}}
public IQueryable<T> GetSomeData<T>() where T : MyType, new()
{ return from a in db.MyTable
where a.MyValue == "A"
select new T {Key=a.Key,Value=a.MyValue};
}
Wenn Sie zurückkommen wollen, müssen Sie einen Typ.
Statt var
erklären IEnumerable<>
verwenden und diese Variable zurück. Iterieren durch sie die Abfrage tatsächlich ausgeführt wird.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow