26 Şubat 2018 Pazartesi

IQueryable Arayüzü

IQueryable
IQueryable arayüzü IEnumerable arayüzünden kalıtır. Yani IEnumerable ile yapabildiğimiz herşeyi yapabiliriz. Faklı olarak, bu arayüz ile sorgunun bellekte değil başka bir yerde çalışması sağlanabilir.

Tanımlama
Şöyle yaparız.
System.Linq.IQueryable<T>
AsQueryable metodu
Şöyle yaparız.
List<T> list = ...

IQueryable<T> q = list.AsQueryable();

ToArrayAsync metodu
System.Data.Entity assembly'sindeki extension metod. Şöyle yaparız
public static Task<TSource[]> ToArrayAsyncSafe<TSource>(this IQueryable<TSource> source) {
  if (source == null)
    throw new ArgumentNullException(nameof(source));
  if (!(source is IDbAsyncEnumerable<TSource>))
    return Task.FromResult(source.ToArray());
  return source.ToArrayAsync();
}

Hiç yorum yok:

Yorum Gönder