Извлечение списка из запроса к базе данных с помощью Entity Framework 6

#c# #entity-framework

#c# #сущность-фреймворк

Вопрос:

Я хочу вернуть список с помощью entity framework

 using (FinalDatabaseEntities fdb = new FinalDatabaseEntities())
{
    var result = from Port in fdb.Ports select Port.Name;
    result = result.ToList();
}
 

Я хочу вернуть список или массив (предпочтительно список) и поместить его в мою result переменную

Я получаю следующую ошибку

Ошибка CS0266 Не удается неявно преобразовать тип ‘System.Коллекции.Generic.List’ to ‘System.Linq.IQueryable’. Существует явное преобразование (вам не хватает приведения?) Наконец-то!! C:UsersKudzai Mhlangaисточник репозитории Наконец-то!!Program.cs 22 Активен

Комментарии:

1. так в чем же собственно проблема ?

2. выполните result = fdb.Ports.Select(x=>x.Name).ToList();

3. Я бы рекомендовал использовать предложение @Aarif, но если вы не хотите слишком сильно изменять свой код: var result = (from Port in fdb.Ports select Port.Name).ToList();

4. Итак, добавьте его в вопрос

5. конечно, спасибо @Stucky

Ответ №1:

Вам просто нужна вторая локальная переменная, которая также делает ваш код более читабельным, поскольку первая строка создает «запрос», а не «результат». Итак:

 using (FinalDatabaseEntities fdb = new FinalDatabaseEntities())
{
    var query = from Port in fdb.Ports select Port.Name;
    var result = query.ToList();
}
 

Ответ №2:

Ваш код будет :

 using (FinalDatabaseEntities fdb = new FinalDatabaseEntities())
{
     var result = (from port in fdb.Ports  select port.Name).ToList();                      
}