8

Sto lavorando su un dato Dinamico.Il metodo "Salta" è supportato solo per l'input ordinato in LINQ alle entità. Il metodo 'OrderBy' deve essere chiamato prima del metodo 'Skip'

dopo la creazione di un modello dinamico e registrare in global.asax, come

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

quando ho eseguito un'applicazione, mostra un elenco di tabelle, ma quando clicco qualsiasi della tabella viene generata un'eccezione:

Il metodo "Salta" è supportato solo per l'input ordinato in LINQ alle entità. Il metodo 'OrderBy' deve essere chiamato prima del metodo 'Skip'.

ma non ho dichiarato alcuna domanda nella mia domanda.

+0

i hanno incontrato qualche sito, che contiene le seguenti informazioni. –

+2

Se si utilizza Entity Framework come modello dati, è necessario aggiornare il metodo di query per ogni entità. È necessario aggiungere la clausola di ordinazione. Il motivo per cui è necessario eseguire questa operazione è che, per impostazione predefinita, il metodo di query non è ordinato e nei modelli di progetto di dati dinamici, il paging è abilitato per i modelli di dettagli Elenco e Elenco. Nel caso se non si ordina il risultato del metodo query e utilizzare la funzione Paging si otterrà la seguente eccezione quando si accede l'entità in List/List Dettagli modello –

+0

come ad esempio: pubblico IQueryable GetProducts() { ritorno this.ObjectContext.Products.OrderBy (p => p.ProductID); } –

risposta

12

È necessario chiamare .OrderBy' sulla query se si utilizza il metodo .Skip. Per esempio, se si sta utilizzando qualcosa di simile al seguente:

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

Nel caso di cui sopra si avrebbe in precedenza ha dovuto utilizzare il .OrderBy per ordinare la query se si sta pensando di usare metodi di paging o qualcosa del piace. Se si dispone di un campo Id, l'aggiunta di questa sul vostro espressione query originale dovrebbe eliminare l'errore:

.OrderBy(x => x.Id);

+1

Poiché l'ordine per ID (se i dati provengono da un database) è implicito, non è possibile che tale ipotesi venga presa anche con il metodo skip? – Diederik

Problemi correlati