web-dev-qa-db-fra.com

Comment convertir le résultat de la requête LINQ en liste?

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>
22
Muruga

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.

21
dellgg
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)

24
goggles1200

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();
8
Thomas Levesque

Vous devez utiliser le select new Mot clé LINQ pour convertir explicitement votre tbcourseentity 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)
                   };

http://www.hookedonlinq.com/LINQtoSQL5MinuteOverview.ashx

5
msigman

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>();
1
Kao