Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
4 / 4 / 5
Регистрация: 12.08.2010
Сообщений: 279
1

Получение данных из БД: в чем разница между Iqueryable и List

05.10.2012, 15:43. Показов 3601. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
получение записей из бд можно с помощью IQueryable и List. А в чем разница? Что лучше использовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2012, 15:43
Ответы с готовыми решениями:

В чем разница между массивом строк и List<string>?
А есть ли принципиальная разница между string array1 и List&lt;string&gt; array2 ? И если есть, то в...

В чем разница между типами данных Integer и Long?
В чем разница между типами данных Integer и Long?

(Siemens_Step7) В чём разница между глобальными и экземплярными блоками данных
Доброго времени суток. Возник следующий вопрос касающийся блока данных DB. Их разделяют на ...

Разница между list и vector?
Разница между list и vector?

2
519 / 511 / 68
Регистрация: 19.09.2011
Сообщений: 826
05.10.2012, 16:37 2
List - коллекция, IQueryable - интерфейс который в момент запроса данных обратится к источнику база/коллекция/etc
разница - list - заполняется 1 раз, изменение исходной коллекции на него не повлеяют
IQueryable - будет выполняться каждый раз когда к нему будет идти обращение к данным (foreach, все фции linq которые возвращают не IQueryable такие как First/FirstOrDefault/Count/etc).
Вывод - все зависит от конкретной ситуации и коллекции
2
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
07.10.2012, 00:42 3
y-fox, Nter, ну еще можно добавить что выражения и обращения к IQuerable обычно транслируются в зависимый от поставщика формат (provider-related), например в случае с L2S и классом Table<T> (который реализует IQuerable) вызовы транслируються в SQL. Если выполнить превращение источника в List<T> (например вызовом метода ToList()), то источник "зафиксируеться" и будет размещен полностью в памяти (представьте что будет если мы таким макаром обратимся к таблице с 1кк записей).
Посему максимально долго сколько можем передаем IQuerable<T> при работе с внешними источниками данных (он реализует IEnumerable<T> и может быть к нему упакован, трансляция в специфичный формат все равно будет работать за счет метаданных) и только в случае когда нужно программно обработать результат выборки и вывести в отображение (view) - фиксируем вызовом ToList().
Передавать IQuerable<T> в View/PartialView не советую.
1
07.10.2012, 00:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2012, 00:42
Помогаю со студенческими работами здесь

Разница между list и dic
Начал изучать Python, и возник такой вопрос: а какая разница между списками и словарями?

Разница между list и vector
Подскажите пожалуйста в чем различие между листами и векторами? Сколько не пытался не смог найти...

В чем разница создания List в первом и во втором случае?
import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Main{ ...

Как преобразовать результат запроса в IQueryable в List?
Здравствуйте! Подскажите пожалуйста, как исправить код моего метода по выборке нескольких...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru