8

Ich arbeite an einer Dynamischen Daten.Die Methode 'Skip' wird nur für sortierte Eingaben in LINQ to Entities unterstützt. Die Methode 'OrderBy' muss vor der Methode 'Skip' aufgerufen werden.

nach einem dynamischen Modell zu schaffen und in global.asax Registrierung, wie

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

wenn ich eine Anwendung ausführen, zeigt es eine Liste von Tabellen, aber wenn ich eine der Tabelle klicken wirft es eine Ausnahme:

Die Methode 'Skip' wird nur für sortierte Eingabe in LINQ to Entities unterstützt. Die Methode 'OrderBy' muss vor der Methode 'Skip' aufgerufen werden.

aber ich habe keine Abfrage in meine Anwendung zu deklarieren.

+0

ich habe stieß auf einige Website, die folgende Informationen enthält. –

+2

Wenn Sie Entity Framework als Datenmodell verwenden, müssten Sie Ihre Abfragemethode für jede Entität aktualisieren. Sie müssen die Sortierklausel hinzufügen. Der Grund hierfür ist, dass die Abfragemethode standardmäßig nicht geordnet ist und in den Projektvorlagen für dynamische Daten das Paging für die Detailvorlagen "Liste" und "Liste" aktiviert ist. Im Fall, wenn Sie das Ergebnis Ihrer Abfragemethode nicht bestellen und Paging verwenden Sie die folgende Ausnahme erhalten, wenn Sie das Unternehmen in List Zugriff/Details Liste Vorlage –

+0

wie: public IQueryable GetProducts() { return this.ObjectContext.Products.OrderBy (p => p.ProduktID); } –

Antwort

12

Sie müssen .OrderBy' in Ihrer Abfrage aufrufen, wenn Sie die .Skip-Methode verwenden.

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

Im obigen Fall zuvor hätten hatten die .OrderBy zu verwenden, um die Abfrage zu bestellen, wenn Sie über die Verwendung Paging-Methoden oder etwas von dem planen: Zum Beispiel, wenn Sie etwas ähnliches wie die folgenden wurden unter Verwendung von mögen. Wenn Sie ein Id Feld haben, das Hinzufügen dieser auf Ihre ursprüngliche Abfrage Ausdruck sollte den Fehler beseitigen:

.OrderBy(x => x.Id);

+1

Da die Sortierung nach ID (wenn die Daten aus einer Datenbank stammen) impliziert wird, kann diese Annahme nicht auch durch die Skip-Methode gemacht werden? – Diederik