LINQ MİMARİSİ
Linq sorgularını IEnumerable<T> ve IQueryable<T> interfacelerini implemente eden sınıflar için kullanabiliriz.
System.Linq isim uzayı; Linq sorguları için gereken sınıfları ve interfaceleri içerir. Aşağıdaki görselden bu sınıfları ve interfaceleri inceleyebilirsiniz.
Linq sorguları IEnumerable ve IQueryable interfacelerini implemente eden sınıflar için extension method olarak hazırlanmıştır. Enumerable ve Queryable statik sınıfları Liq için hazırlanan extension metodları barındırır. Bu sınıflara yakından bakalım.
Enumerable Sınıfı
Enumerable sınıfı ,IEnumerable<T> interface ini implemente eden sınıflar için extension metodları barındırır. Örneğin List<T>,Queue<T>,Stack<T>... Aşağıdaki şekil Enumerable sınıfı içerisindeki extension metodları gösteriyor.
Queryable Sınıfı
Queryable sınıfı, IQueryable interfacini implemente eden sınıflar için extension metodları içerir. IQueryable<T> interface'i, veri türünün bilindiği belirli bir veri kaynağına karşı sorgulama yetenekleri sağlamak için kullanılır. Örneğin, Entity Framework.
Aşağıdaki şekil Queryable sınıfı içerisindeki extension metodları gösteriyor.