J'ai une méthode:
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;
}
et erreur à l'endroit sélectionné:
Erreur 1 Impossible de convertir implicitement le type 'System.Linq.IQueryable <WcfService1.DzieckoAndOpiekun>' en 'System.Collections.Generic.IList <WcfService1.DzieckoAndOpiekun>'. Il existe une conversion explicite (il vous manque une distribution?)
Une idée comment résoudre mon problème?
Pour convertir IQuerable
ou IEnumerable
en une liste, vous pouvez effectuer l'une des opérations suivantes:
IQueryable<object> q = ...;
List<object> l = q.ToList();
ou:
IQueryable<object> q = ...;
List<object> l = new List<object>(q);
Vous pouvez remplacer IList<DzieckoAndOpiekun> resultV
avec var resultV
.
Si vous utilisez une clause where, assurez-vous d'inclure .First()
si vous ne voulez pas d'objet IQueryable.
Essayez ceci ->
new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko).ToList()
Vous pouvez utiliser la méthode . ToList () pour convertir le résultat IQueryable renvoyé en IList, comme illustré ci-dessous, après la requête linq.
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;
}
J'ai résolu mon problème de cette façon dans EF sur la liste des enregistrements de db
ListOfObjectToBeOrder.OrderBy(x => x.columnName).ToList();