8

Estoy trabajando en una información dinámica.El método 'Omitir' solo se admite para entrada ordenada en LINQ a Entidades. El método 'OrderBy' debe invocarse antes del método 'Omitir'

después de crear un modelo dinámico y registro en global.asax, como

DefaultModel.RegisterContext(typeof(masterEntities1),new ContextConfiguration() { ScaffoldAllTables = true }); 

cuando ejecuto una aplicación, se muestra una lista de tablas, pero cuando hago clic en cualquiera de la tabla que se produce una excepción:

El método 'Omitir' solo se admite para entrada ordenada en LINQ a Entidades. El método 'OrderBy' debe invocarse antes del método 'Omitir'.

pero no he declarado ninguna consulta en mi aplicación.

+0

i han encontré con un sitio web que contiene la siguiente información. –

+2

Si está utilizando Entity Framework como modelo de datos, debería actualizar su método de consulta para cada entidad. Debe agregar la cláusula de pedido. La razón por la que debe hacer esto es porque, de manera predeterminada, el método de consulta no está ordenado y en las plantillas de proyecto de Datos dinámicos, la paginación está habilitada para las plantillas de detalles Lista y Lista. En el caso si usted no ordena el resultado de su método de consulta y el uso de paginación obtendrá la siguiente excepción cuando acceda a la entidad en la Lista/Lista detalles de la plantilla –

+0

tales como: IQueryable GetProducts públicos() { retorno this.ObjectContext.Products.OrderBy (p => p.ProductID); } –

Respuesta

12

Debe llamar al .OrderBy' en su consulta si utiliza el método .Skip. Por ejemplo si estuviera usando algo similar a lo siguiente:

results = results.Skip(pageNumber * size).Take(size);

En el caso anterior tendría que anteriormente tenían que utilizar el .OrderBy para ordenar la consulta si usted está planeando sobre el uso de métodos de localización o algo por el me gusta. Si usted tiene un campo Id, la adición de esta expresión en su búsqueda original debería eliminar el error:

.OrderBy(x => x.Id);

+1

Dado que el pedido por ID (si los datos provienen de una base de datos) está implícito, ¿no puede esa suposición ser hecha también por el método de omisión? – Diederik

Cuestiones relacionadas