Domanda

Ho un'app Silverlight 3 con RIA Services e sto riscontrando un problema in cui il mio DataPager sta caricando solo i dati per la dimensione di caricamento iniziale e non ricaricando più. Visualizza due pagine di dati (PageSize = 10, LoadSize = 20.) Mostra correttamente 119 pagine di dati ma quando passo alla pagina 3, non appare nulla nel mio datagrid e nei moduli di dati.

Questa è la mia fonte di dati di dominio:

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

Ecco lo snippet per DataPager:

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

Ed ecco la query del servizio di dominio:

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

È piuttosto semplice, quindi non sono sicuro di cosa manchi. Qualsiasi aiuto sarebbe apprezzato;

È stato utile?

Soluzione

Dopo aver passato troppo tempo a cercare di farlo funzionare, ho finalmente risolto il problema, che penso sia più un bug con la tecnologia dei Servizi RIA perché avrei dovuto ricevere una sorta di messaggio di avvertimento al riguardo.

La semplice soluzione è ordinare la raccolta restituita da GetCaseLoads (). L'ho fatto in questo modo e ha funzionato:

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

Incredibile quanto tempo ci è voluto per risolvere questo piccolo problema.

Altri suggerimenti

Ho avuto lo stesso problema, posso vedere dall'esempio fornito nella documentazione di RIA Services Overview che stanno usando LINQ to SQL invece di LINQ to EF - deve essere qualcosa con la differenza tra i due.

Grazie per aver pubblicato la soluzione alternativa, mi ha risparmiato molte ore di dissolvenza :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top