Устройство передачи данных не работает в сервисах Silverlight 3 + RIA

StackOverflow https://stackoverflow.com/questions/1207994

Вопрос

У меня есть приложение Silverlight 3 со службами RIA, и я столкнулся с проблемой, когда мой DataPager загружает данные только для начального размера загрузки, а затем больше не перезагружается.Он выводит две страницы данных (pageSize= 10, LoadSize= 20).) Он корректно отображает 119 страниц данных, но когда я перехожу на страницу 3, в моей datagrid и dataforms ничего не появляется.

Это Источник данных моего Домена:

<riaControls:DomainDataSource x:Name="_dds" QueryName="GetCaseLoads" AutoLoad="True" PageSize="10" LoadSize="20">
    <riaControls:DomainDataSource.DomainContext>
        <domain:FooContext />
    </riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>

Вот фрагмент для DataPager:

<data:DataPager Source="{Binding Data, ElementName=_dds}" />

А вот запрос Доменной службы:

[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
    // Return all case loads
    return this.Context.CaseLoadSet;
}

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

Это было полезно?

Решение

Потратив слишком много времени на попытки заставить это работать, я, НАКОНЕЦ, разобрался с проблемой, которая, как мне кажется, скорее связана с ошибкой в технологии RIA Services, потому что я должен был получить какое-то предупреждающее сообщение об этом.

Простое решение состоит в том, чтобы упорядочить коллекцию, возвращаемую GetCaseLoads().Я сделал это вот так, и это сработало:

[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
    // Return all case loads
    return this.Context.CaseLoadSet.OrderBy(caseLoad=>caseLoad.fkUserId);
}

Удивительно, сколько времени заняло решение этой маленькой проблемы.

Другие советы

У меня была та же проблема, я могу видеть из примера, приведенного в документации Обзора RIA Services, что они используют LINQ to SQL вместо LINQ to EF - должно быть что-то с различием между ними.

Спасибо за публикацию обходного решения, избавившего меня от многочасовых ошибок:)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top