Mit nHibernate können Sie Spaltennamen problemlos sortieren, solange der Spaltenname mit dem Mapping übereinstimmt. So zum Beispiel:AddOrder on nHibernate mit Spalten ohne Feldnamen
Map(Function(x) x.CreatedOn)
criteria = criteria.AddOrder(New Global.NHibernate.Criterion.Order("CreatedOn", True))
Ist alles über Bord und gemütlich.
Allerdings habe ich Probleme, die richtige Syntax zu erhalten, um nach Eigenschaften zu sortieren, die vom Objekt abgeleitet und nicht direkt zugeordnet werden. Ich bin mir nicht einmal sicher, ob Letzteres möglich ist. Berücksichtigen Sie Folgendes:
HasMany(Function(x) x.Shipments).Cascade.SaveUpdate()
Public Overridable ReadOnly Property Items() As IList(Of OrderItem)
Get
Return Shipments.SelectMany(Function(x) x.Items).ToList().AsReadOnly()
End Get
End Property
Wie würde man nach Items.Count in dieser Situation bestellen? Der Versuch, das objvious:
criteria = criteria.AddOrder(New Global.NHibernate.Criterion.Order("Items.Count", True))
führt zu einem Fehler von „konnte nicht auflösen Eigenschaft: Items“
Cheers, Matt