“ เรียงลำดับตาม Col1, Col2” โดยใช้กรอบงานเอนทิตี


118

ฉันต้องการเรียงลำดับ 2 คอลัมน์โดยใช้กรอบงานเอนทิตี

เป็นอย่างไรบ้าง?

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

กล่าวคือ

SELECT * FROM Foo ORDER BY Col1, Col2

คำตอบ:



51

อีกวิธีหนึ่ง:

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

คุณเรียงลำดับจากมากไปน้อยด้วยวิธีนี้ได้อย่างไร?
user551113

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

7
ฉันได้รับข้อความแสดงข้อผิดพลาด "อย่างน้อยหนึ่งวัตถุต้องใช้ IComparable" เมื่อใช้กับ EntityFramework Core ในฟิลด์สตริงสองช่อง
sixtstorm1

26

ลอง:

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

สำหรับการเรียงลำดับจากมากไปน้อยลองทำดังนี้:

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

1

การเรียงลำดับต่อไปนี้เกิดขึ้นในระดับ DB ไม่อยู่ในผลลัพธ์ที่ส่งคืน

ลอง:

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

ตัวอย่างที่ 1:

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

ตัวอย่างที่ 2:

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

IQueryable<a>แบบสอบถามเอนทิตีอยู่ที่ไหน คือ "col1 asc"คอลัมน์ 1 และทิศทางการเรียงลำดับ "col2 asc"คือคอลัมน์ 2 และทิศทางการเรียงลำดับ


-6

โปรดทราบว่าสิ่งนี้จะใช้ไม่ได้กับ Telerik's Grid หรือส่วนประกอบ DataSource อื่น ๆ ของ Telerik แม้ว่าจะใช้อ็อบเจ็กต์ IQueryable ที่กรองล่วงหน้า แต่การเรียงลำดับจะทำโดยอัตโนมัติเสมอเนื่องจากขั้นตอนสุดท้ายจะลบล้างการตั้งค่าการเรียงลำดับของคุณได้อย่างมีประสิทธิภาพ

คุณต้องปฏิบัติตาม: การระบุการจัดเรียงเริ่มต้นในตาราง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.