Varlık çerçevesi kullanılarak "Sütun1, Sütun2'ye göre Sipariş"


118

Varlık çerçevesini kullanarak 2 sütuna göre sipariş etmem gerekiyor.

Bu nasıl yapılır?

return _repository.GetSomething().OrderBy(x => x.Col1   .. Col2)?

yani

SELECT * FROM Foo ORDER BY Col1, Col2

Yanıtlar:


245

Deneyin OrderBy(x => x.Col1).ThenBy(x => x.Col2). Bu bir LINQ özelliğidir, zaten EF'e özel değildir.


51

Diğer yol:

qqq.OrderBy(x => new { x.Col1, x.Col2} )

Bu şekilde alçalmayı nasıl düzenlersiniz?
user551113

10
qqq.OrderByDescending (x => new {x.Col1, x.Col2})
parfilko

7
EntityFramework Core ile iki dize alanında kullanıldığında "En az bir nesne IComparable uygulamalıdır" hata iletisi alıyorum.
sixtstorm1

26

Deneyin:

OrderBy(x => x.Col1).ThenBy(x => x.Col2)

Azalan sipariş için şunu deneyin:

OrderByDescending (x => x.Col1).ThenByDescending (x => x.Col2)

1

Aşağıdaki sıralama, DB seviyesinde gerçekleşir. Döndürülen sonuçta değil.

Deneyin:

IQueryable<a>.OrderBy("col1 asc, col2 asc")

Örnek 1:

ctx.CateringOrders.OrderBy("Details.DeliveryDate asc, Details.DeliveryTime asc")

Örnek 2:

ctx.CateringOrders.OrderBy("{0} {1}, {2} {3}", 
    "Details.DeliveryDate", "asc",
    "Details.DeliveryTime", "asc" 
)

IQueryable<a>Varlık sorgusu nerede , "col1 asc"sütun 1 ve sıralama yönü "col2 asc"sütun 2 ve sıralama yönü


-6

Lütfen bunun Telerik Grid veya başka herhangi bir Telerik DataSource bileşeni ile çalışmayacağını unutmayın. Önceden filtrelenmiş IQueryable nesnesi kullanmasına rağmen, sıralama her zaman son adım olarak otomatik olarak yapılır ve sıralama ayarlarınızı etkili bir şekilde geçersiz kılar.

Takip etmelisiniz: Kılavuzda varsayılan sıralamayı belirleme

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.