Pregunta

Tengo una aplicación Silverlight 3 con RIA Services y me encuentro con un problema en el que mi DataPager solo carga datos para el tamaño de carga inicial y luego ya no se recarga. Muestra dos páginas de datos (PageSize = 10, LoadSize = 20.) Muestra correctamente 119 páginas de datos, pero cuando navego a la página 3, no aparece nada en mi cuadrícula de datos y formularios de datos.

Esta es mi fuente de datos de dominio:

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

Aquí está el fragmento de DataPager:

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

Y aquí está la consulta del Servicio de dominio:

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

Es bastante sencillo, así que no estoy seguro de lo que falta. Cualquier ayuda sería apreciada;

¿Fue útil?

Solución

Después de pasar demasiado tiempo tratando de hacer que esto funcione, FINALMENTE descubrí el problema, que creo que es más un error con la tecnología de los Servicios RIA porque debería haber recibido algún tipo de mensaje de advertencia al respecto.

La solución simple es ordenar la colección que devuelve GetCaseLoads (). Lo hice así y funcionó:

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

Increíble cuánto tiempo llevó resolver este pequeño problema.

Otros consejos

Tuve el mismo problema, puedo ver en el ejemplo dado en la documentación de la Descripción general de los servicios de RIA que están usando LINQ to SQL en lugar de LINQ to EF: debe ser algo con la diferencia entre los dos.

Gracias por publicar la solución, me ahorró muchas horas de faffing :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top