Подтвердить что ты не робот

Как преобразовать результат запроса LINQ в List?

Мне нужно преобразовать результат запроса linq в список. Я попробовал следующий код:

var qry = from a in obj.tbCourses
                     select a;

List<course> lst = new List<course>();
lst = qry.ToList();

Для приведенного выше кода произошла ошибка:

Cannot implicitly convert type 
System.Collections.Generic.List<Datalogiclayer.tbcourse> to
System.Collections.Generic.List<course>
4b9b3361

Ответ 1

Не нужно делать так много работ.

var query = from c in obj.tbCourses
        where ...
        select c;

Затем вы можете использовать:

List<course> list_course= query.ToList<course>();

Это отлично работает для меня.

Ответ 2

List<course> = (from c in obj.tbCourses
                 select 
                new course(c)).toList();

Вы можете преобразовать объект сущности в список непосредственно по вызову. Существуют методы преобразования его в разные структуры данных (список, массив, словарь, поиск или строку).

Ответ 3

Вам нужно каким-то образом преобразовать каждый объект tbcourse в экземпляр course. Например, course может иметь конструктор, который принимает tbcourse. Затем вы можете написать запрос следующим образом:

var qry = from c in obj.tbCourses
          select new course(c);

List<course> lst = qry.ToList();

Ответ 4

Вам нужно использовать ключевое слово select new LINQ, чтобы явно преобразовать ваш объект tbcourse в пользовательский тип course. Пример 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

Что вы можете сделать, это выбрать все в новом экземпляре курса, а затем преобразовать их в список.

var qry = from a in obj.tbCourses
                     select new Course() {
                         Course.Property = a.Property
                         ...
                     };

qry.toList<Course>();