Ich habe eine Methode:
public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname)
{
DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities();
DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection();
if (firstname == null && lastname != null)
{
IList<DzieckoAndOpiekun> resultV = from p in db.Dziecko
where lastname == p.Nazwisko
**select** new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko)
;
result.AddRange(resultV);
}
return result;
}
und Fehler an ausgewählter Stelle:
Fehler 1 Der Typ "System.Linq.IQueryable <WcfService1.DzieckoAndOpiekun>" kann nicht implizit in "System.Collections.Generic.IList <WcfService1.DzieckoAndOpiekun>" konvertiert werden. Es liegt eine explizite Konvertierung vor (Fehlt Ihnen eine Besetzung?)
Irgendeine Idee, wie ich mein Problem lösen könnte?
Um IQuerable
oder IEnumerable
in eine Liste zu konvertieren, haben Sie folgende Möglichkeiten:
IQueryable<object> q = ...;
List<object> l = q.ToList();
oder:
IQueryable<object> q = ...;
List<object> l = new List<object>(q);
Sie können IList<DzieckoAndOpiekun> resultV
Durch var resultV
Ersetzen.
Wenn Sie eine where-Klausel verwenden, müssen Sie .First()
einschließen, wenn Sie kein IQueryable-Objekt möchten.
Versuchen Sie dies ->
new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko).ToList()
Sie können die . ToList () - Methode verwenden, um das zurückgegebene IQueryable-Ergebnis nach der linq-Abfrage in eine IList zu konvertieren (siehe unten).
public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname)
{
DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities();
DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection();
if (firstname == null && lastname != null)
{
IList<DzieckoAndOpiekun> resultV = from p in db.Dziecko
where lastname == p.Nazwisko
**select** new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko).ToList()
;
result.AddRange(resultV);
}
return result;
}
Ich habe mein Problem auf diese Weise in EF auf der Liste der Datensätze von DB gelöst
ListOfObjectToBeOrder.OrderBy(x => x.columnName).ToList();