J'ai besoin de convertir le résultat de la requête linq en liste. J'ai essayé le code suivant:
var qry = from a in obj.tbCourses
select a;
List<course> lst = new List<course>();
lst = qry.ToList();
L'erreur suivante s'est produite pour le code ci-dessus:
Cannot implicitly convert type
System.Collections.Generic.List<Datalogiclayer.tbcourse> to
System.Collections.Generic.List<course>
Pas besoin de faire autant de travaux ..
var query = from c in obj.tbCourses
where ...
select c;
Ensuite, vous pouvez utiliser:
List<course> list_course= query.ToList<course>();
Ça fonctionne bien pour moi.
List<course> = (from c in obj.tbCourses
select
new course(c)).toList();
Vous pouvez convertir l'objet entité en liste directement sur l'appel. Il existe des méthodes pour le convertir en différentes structures de données (liste, tableau, dictionnaire, recherche ou chaîne)
Vous devez en quelque sorte convertir chaque objet tbcourse
en une instance de course
. Par exemple, course
pourrait avoir un constructeur qui prend un tbcourse
. Vous pouvez alors écrire la requête comme ceci:
var qry = from c in obj.tbCourses
select new course(c);
List<course> lst = qry.ToList();
Vous devez utiliser le select new
Mot clé LINQ pour convertir explicitement votre tbcourse
entity en type personnalisé course
. Exemple de select new
:
var q = from o in db.Orders
where o.Products.ProductName.StartsWith("Asset") &&
o.PaymentApproved == true
select new { name = o.Contacts.FirstName + " " +
o.Contacts.LastName,
product = o.Products.ProductName,
version = o.Products.Version +
(o.Products.Subversion * 0.1)
};
Ce que vous pouvez faire est de tout sélectionner dans une nouvelle instance de Course, puis de les convertir en liste.
var qry = from a in obj.tbCourses
select new Course() {
Course.Property = a.Property
...
};
qry.toList<Course>();