2009-04-28 11 views
0

Ich bin dabei, ein einfaches Linq zu SQL-Repository-Muster zu erstellen.Standard Sortierspalte mit Linq zu SQL

Was ich wissen wollte ist, ist es möglich, eine Standard-Sortierspalte zu setzen, so dass ich orderby nicht aufrufen muss. Von dem, was ich gelesen habe, glaube ich nicht, und wenn das der Fall ist, würde das eine Lösung für dieses Problem empfehlen.

Wäre die beste Idee, ein Attribut für eine Teilklasse in meinem Modell zu verwenden?

+0

Sagen Sie zum Beispiel, ich habe ein Client-Objekt, normalerweise wird der Standard auf dem Primärschlüssel (clientId) jedoch 9/10 Mal werde ich nach dem ClientName sortieren möchten, so dass ich dies als Standard festlegen möchten ohne es jedes Mal angeben zu müssen. –

Antwort

4

Die Standardreihenfolge ist der gruppierte Index in der Tabelle, aus der Sie ziehen.

Worauf möchten Sie sortieren (ohne zu sortieren)?

0

Wenn Sie etwas anderes benötigen, als nach dem Primärschlüssel sortiert zu sein, können Sie eine SELECT-Anweisung für die Tabelle angeben, anstatt die von der Laufzeit generierte Anweisung zu verwenden. Sehen Sie sich die Eigenschaften in der Tabelle im Designer an - Sie sollten die von der Laufzeit generierten Anweisungen zum Auswählen, Löschen und Aktualisieren überschreiben können. Ich persönlich empfehle das jedoch nicht, da ich mir nicht sicher bin, wie es mit anderen Bestellungen zusammenwirken wird. Ich denke, die Absicht ist mehr in Richtung der Möglichkeit, gespeicherte Prozeduren zu verwenden, wenn Sie möchten.

Eine andere Alternative wäre, eine Tabellenwertfunktion oder gespeicherte Prozedur zu erstellen, die die Reihenfolge wie gewünscht ausführt und das gleiche Schema wie die Tabelle hat. Wenn Sie dies im Designer auf die Tabelle ziehen, erhalten Sie eine stark typisierte Methode für den Datenkontext, mit der Sie diese Entitäten gemäß der Definition der Funktion/Prozedur anstelle der Standardauswahl abrufen können. Persönlich denke ich, dass dies weniger Wartungsprobleme verursacht, weil es es sichtbarer macht, aber Sie müssen daran denken, die Methode anstelle der Table-Eigenschaft für diese Entität zu verwenden.