Aşağıdaki kodu: SQL'den LINQ - Neden bir ORDER BY sonra bir WHERE kullanamazsınız?
// select all orders
var orders = from o in FoodOrders
where o.STATUS = 1
order by o.ORDER_DATE descending
select o;
// if customer id is specified, only select orders from specific customer
if (customerID!=null)
{
orders = orders.Where(o => customerID.Equals(o.CUSTOMER_ID));
}
bana aşağıdaki hatayı veriyor: Ben sonunda sıralama yaparak hatayı sabit
:Cannot implicitly convert type 'System.Linq.IQueryable' to 'System.Linq.IOrderedQueryable'. An explicit conversion exists (are you missing a cast?)
// select all orders
var orders = from o in FoodOrders
where o.STATUS = 1
select o;
// if customer id is specified, only select orders from specific customer
if (customerID!=null)
{
orders = orders.Where(o => customerID.Equals(o.CUSTOMER_ID));
}
// I'm forced to do the ordering here
orders = orders.OrderBy(o => o.ORDER_DATE).Reverse();
Ama merak ediyorum bu sınırlama neden yerinde? API'nin, bir order by
operatörünü kullandıktan sonra where
kısıtlaması ekleyemeyecek şekilde tasarlanma nedeni nedir?
no-op sorgusu nedir itiraz ediyor aynı şekilde var düşünemiyorum? – MCS
Bu gerçekten kapsamlı bir cevap ve harika bir açıklama. Teşekkürler. – MCS
@MCS: Ben bir no-op projeksiyonunu kastettim - ne demek istediğimi görüyorsanız, sadece orada olanı seçen bir seçim maddesi. –