Служба связи LINQ to Entities - PullRequest
       2

Служба связи LINQ to Entities

0 голосов
/ 15 сентября 2010

У меня есть доменная служба, производная от LinqToEntitiesDomainService

У нее есть один метод, IQueryable GetBar ().GetBar возвращает запрос LINQ для модели объекта.LINQ отлично работает в LINQPad.

В XAML штук Silverlight у меня есть ListBox, у которого ItemsSource указывает на DomainDataSource, определенный в том же файле XAML, с именем dsGetBar.AutoLoad = "True" на dsGetBar.У меня есть пустой обработчик для события LoadedData dsGetBar.

Я запускаю это в VS2010.Когда я присоединяюсь к процессу WebDev.WebServer и к экземпляру браузера и загружаю страницу, я сталкиваюсь с точками останова в GetBar () и в обработчике LoadedData.Из этого я оптимистично заключаю, что сервис вызывается клиентом.

В GetBar () я вызываю queryresults.Count, который возвращает 24 000 и изменяется.Мой метод возвращает нормально, без каких-либо исключений.

Так вот в чем проблема:

В LoadedData dsGetBar.Data.Count == 0. В ListBox элементы не отображаются.В случае, если мой шаблон элемента ListBox был сломан, я попытался использовать DataGrid.Та же сделка

Есть ли данные там, где должны быть данные?Если нет, то где?Является ли ItemsSource правильным свойством, если вы хотите предоставить элементу управления источник элементов?

Есть ли какой-нибудь известный способ выяснить, что происходит между сервисом и клиентом?

ОБНОВЛЕНИЕ

Служба возвращает 504 («Ошибка ReadResponse (): сервер не возвратил ответ на этот запрос.») После успешного завершения метода запроса,

ОБНОВЛЕНИЕ

Произошло 504, потому что количество записей превысило 65 535.Только 24 000 с лишним прошли через предложение where в LINQ (это было бы 74 000 без предложения where), так что это даже не ограничение на то, что может проходить по проводам.Абсурд.Это число микроскопическое.

Я думаю, что мы узнали, что Entity Framework еще не готова для использования в программном обеспечении.

ОБНОВЛЕНИЕ

... или что вы должны использовать пейджеры, когда вам нужно отобразить большое количество записей в XAML.

1 Ответ

2 голосов
/ 15 сентября 2010

Вы можете использовать Fiddler , чтобы увидеть, что происходит между клиентом и сервером. Это прокси браузера, который перехватывает весь трафик браузера, чтобы вы могли видеть, что происходит.

К сожалению, я не знаю, что идет не так.

...