Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Entity Framework + Execure reader 
:(
    Опции темы
likegift
Дата 25.4.2011, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



есть код:

Код

 var u = (from x in dBase.MyTable select x);
 foreach (var info in u)
{

}


при выполнении кода, в IntelliTrace вызывается Execute Reader. Т.е. он открывает базу, ставит курсор и давай перебирать по одной записи?? 
Мне вот так не надо. как заставить его вернуть весь список сразу - типа, DataAdapter.Fill() ?

PM MAIL   Вверх
jonie
Дата 25.4.2011, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Цитата


при выполнении кода, в IntelliTrace вызывается Execute Reader. Т.е. он открывает базу, ставит курсор и давай перебирать по одной записи?? 
Мне вот так не надо. как заставить его вернуть весь список сразу - типа, DataAdapter.Fill() ?
с чего вы взяли что DataAdapter.Fill не вызывает somecmd.ExecuteReader ??
Любое взаимодействие с базой в C# и ADO.NET (возрат кортежей) в конечном итоге работает с IDataReader-ом

ну а если вам надо вернуть просто списком, сделайте u.ToList().

Это сообщение отредактировал(а) jonie - 25.4.2011, 16:09


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
likegift
Дата 26.4.2011, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



а я так пробовал, но не почувствовал разницы. наверно, я просто паникую smile
хотя, нет. проверял на базе, удаленной существенно и было видно, что даже после ToList() идет обращение к базе в каждой итерации.

Это сообщение отредактировал(а) likegift - 26.4.2011, 05:39
PM MAIL   Вверх
jonie
Дата 26.4.2011, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Цитата(likegift @  26.4.2011,  05:38 Найти цитируемый пост)

хотя, нет. проверял на базе, удаленной существенно и было видно, что даже после ToList() идет обращение к базе в каждой итерации

не может быть. List<T> никак не связан с базой (если, конечно, у вас не хитрые T элементы в которых есть нечто вроде LazyLoading).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
likegift
Дата 27.4.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



я не знаю на сколько элементы должны бить хитрыми, но под дебагом при каждом обращении к info происходит зависание на 1 сек, что лично меня наводит на мысль на обращение к удаленному серверу. 
поправьте, где не прав

PM MAIL   Вверх
jonie
Дата 27.4.2011, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



info может содержать LazyLoad части (коллекции), которые и подтягиваются.. но это только если к ним есть реальное обращение должно быть.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.