Асинхронная загрузка данных в Entity-Framework? - PullRequest
1 голос
/ 16 ноября 2009

Кто-нибудь слышал об асинхронном выполнении EF-запроса?

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

Может быть, путем автоматического разделения выполнения на большое количество элементов (т.е. несколько запросов для каждого выполнения), все в одном соединении.

Я отправил предложение о функции в Microsoft , пожалуйста, поделитесь ими со своими идеями.

Ответы [ 2 ]

1 голос
/ 16 ноября 2009

Не хочу звучать как реклама, но я заметил, что последняя сетка DevExpress предоставляет такие функции в своей сетке WPF. По сути, вы хотите сначала загрузить visible-count элементов, а затем загрузить остальные в фоновом потоке, чтобы ваш пользовательский интерфейс не зависал. Фоновый поток, вероятно, должен загружать другую страницу за раз и делать их доступными для потока пользовательского интерфейса.

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

0 голосов
/ 16 ноября 2009

Я беру с твоей ссылки, что это веб-приложение. Это правильно?

Запрос должен завершиться и вернуть данные до начала рендеринга. Функция EF здесь вам не поможет. Скорее. рассмотрим разбиение вашего процесса на несколько процессов, которые можно выполнить одновременно.

Имейте в виду, что ASP.NET не может вернуть ответ браузеру, если он не завершил рендеринг HTML.

Позвольте мне предположить, что вы выполняете один запрос, возвращаете результаты и отображаете их на странице.

Лучший вариант: страница ваших результатов. если у вас 4000 записей, покажите первые 50. Если вы покажете пользователю более 200 записей, они не смогут переварить столько информации.

Если это не соответствует вашим потребностям, посмотрите на один запрос для получения 50 результатов. Сделайте Ajax-вызов оставшимся записям и создайте пользовательский интерфейс оттуда (в разумных размерах).

...