Son kullanıcının döndürülen raporun sıralama düzeni için birden fazla alan seçtiği bir raporlama arayüzüm var. Sorun şu ki, bir sıralama alanları listesiyle yinelemediğim için gerçekten OrderBy/ThenBy yöntemlerini zincirleyemiyorum. Böyle bir şey düşünüyorum:Program aracılığıyla zinciri OrderBy/ThenBy LINQ/Entity Framework kullanarak
foreach (string sort in data.SortParams)
{
switch (sort)
{
case "state":
query = query.ThenBy(l => l.RegionCode);
break;
case "type":
query = query.ThenBy(l => l.Type);
break;
case "color":
query = query.ThenBy(l => l.Color);
break;
case "category":
query = query.OrderBy(l => l.Category);
break;
}
}
(Not:. Bu yalınlık sağlamak için ilk sıralama madde olup olmadığını belirlerken anahtarı kaldırdık) bir topluluk içinde yineleme için nasıl
Herhangi bir düşünce sıralama düzenini belirlemek için?
Reklam öğesi, ancak bunun, sorgu performansını etkileyip etkilemediğini kontrol etmesi gerekiyor. İndeks kullanımını engelleyebilir. – usr
Bu benim için bir çekicilik gibi çalıştı. İlk başta yukarıdaki gibi aynı kodu vardı, ancak ilk 'OrderBy() 'için varsayılan bir sütun seçmek zorunda kaldı - Ben orada yerine 0 koyabileceğini bilmiyordum. 0, nihai SQL sorgusunun her satır için 0 değerine sahip olan fazladan bir sütunla çıkmasına neden olur, sonra bu sıraya göre sıralanır, kukla sıralama elde edilir, sonra zincirdeki tüm sütunları uygular 'ThenBy()' s 'eklediniz. Teşekkürler! – BeemerGuy
'OrderBy (l => 0)' öğesini çağırırken ArgumentOutOfRangeException öğesini alıyorum. [İşte] (https://pastebin.com/raw/TZQ9g8Es) 'StackTrace'. – Shimmy