AsQueryable amacı nedir()?
Amaçla AsQueryable()
çok iletebilirsiniz etrafında bir IEnumerable
yöntemleri diye bekliyoruz IQueryable
ya da var yararlı bir nedenle temsil IEnumerable
IQueryable
? Örneğin, bu gibi durumlar için olmalı
IEnumerable<Order> orders = orderRepo.GetAll();
// I don't want to create another method that works on IEnumerable,
// so I convert it here.
CountOrders(orders.AsQueryable());
public static int CountOrders(IQueryable<Order> ordersQuery)
{
return ordersQuery.Count();
}
Ya aslında farklı bir şey yapmak yapar:
IEnumerable<Order> orders = orderRepo.GetAll();
IQueryable<Order> ordersQuery = orders.AsQueryable();
IEnumerable<Order> filteredOrders = orders.Where(o => o.CustomerId == 3);
IQueryable<Order> filteredOrdersQuery = ordersQuery.Where(o => o.CustomerId == 3);
// Are these executed in a different way?
int result1 = filteredOrders.Count();
int result2 = filteredOrdersQuery.Count();
Bu uzatma yöntemleri IQueryable
sürümleri sadece onun idam sonra aynı şeyi yapıyor biter bir İfade oluşturmak mı? Benim asıl soru, AsQueryable
kullanmak için gerçek bir kullanım durumu nedir?
CEVAP
Birkaç ana kullanan var.
Olarak belirtilen diğer cevaplar, kullanabilirsiniz alay sorgulanabilir bir veri kaynağı kullanarak bir bellek içi veri kaynağı, böylece daha kolay test yöntemleri o olacak sonunda kullanılır olmayan sayısız tabanlı
IQueryable
.-Bellekte dizileri ya da dış veri kaynakları için de geçerli olabilecek koleksiyonları işlemek için yardımcı yöntemler yazabilirsiniz. Eğer
IQueryable
tamamen kullanmak için yardım yöntemlerinizi yazarsanız sadece enumerablesAsQueryable
onları kullanabilirsiniz. Bu çok yaygın yardımcı yöntemler iki ayrı versiyon yazılmasını önlemek için izin verir.Derleme zamanı
IQueryable
yerine biraz daha türetilmiş bir tür için sorgulanabilir bir türünü değiştirmek için izin verir. Etkisi;IEnumerable
AsEnumerable
kullanmak istiyorum aynı zamanIQueryable
üzerinde kullanmak istiyorum.IQueryable
uygulayan, aynı zamandaSelect
bir örnek yöntemi olan bir nesne olabilir. Bu durumda olsaydı, ** 20 ETMENİZ yöntemi kullanmak istediğinizde,IQueryable
nesne derleme türünü değiştirmek gerekir. Sadece koyun olabilir, amaAsQueryable
bir yöntem olmasından tür kesmesi yararlanabilirsiniz. Bu, genel bir bağımsız değişken listesi karmaşık ise sadece daha rahat olduğunu, ve aslındagerekligenel argümanlar varsa anonim türleri.
Adına sesleniyorum amacı nedir?...
amacı nedir satırı komut " ve&quo...
Vshost.exe amacı dosya nedir?...
Tek amacı&;_" Python değişken alt...
'In python iç sınıflar amacı nedi...