Question

J'ai une application Silverlight 3 avec les services RIA et je rencontre un problème dans lequel mon DataPager charge uniquement des données pour la taille de chargement initiale, puis ne se recharge plus. Il affiche deux pages de données (PageSize = 10, LoadSize = 20.). Il affiche correctement 119 pages de données, mais lorsque je navigue vers la page 3, rien n’apparaît dans ma grille de données ni dans mes formulaires.

Voici la source de données de mon domaine:

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

Voici l'extrait de code du DataPager:

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

Et voici la requête du service de domaine:

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

C'est assez simple, donc je ne suis pas sûr de ce qui manque. Toute aide serait appréciée;

Était-ce utile?

La solution

Après avoir passé beaucoup trop de temps à essayer de résoudre ce problème, j’ai FINALEMENT compris le problème, ce qui, à mon avis, est plutôt un bug de la technologie RIA Services car j’aurais dû recevoir un message d’avertissement à ce sujet.

La solution simple consiste à ordonner le retour de la collection par GetCaseLoads (). Je l'ai fait comme ça et ça a fonctionné:

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

C'est incroyable combien de temps a pris la résolution de ce petit problème.

Autres conseils

J'ai eu le même problème, comme le montre l'exemple donné dans la documentation RIA Services Overview: ils utilisent LINQ to SQL au lieu de LINQ to EF - cela doit être quelque chose de différent entre les deux.

Merci d’avoir posté cette solution de contournement, m’a sauvé de nombreuses heures de travail:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top