• 21 Kasım 2024 23:15

Sait ORHAN

Öğretmek için Öğrenin- Öğrenmek için Öğretin

LINQ ile Dinamik Şart Oluşturmak ve Dinamik “Include” İfadesi Kullanmak

BySait ORHAN

Mar 31, 2015

Bir linq sorgusu oluşturulurken çoğu zaman statik şart kullanımı yeterli olabiliyor ama bazı durumlarda where içerine yazılan şart ifadesi duruma göre değişebiliyor. Örneğin bir raporlama yapıldığında kullanıcının seçtiği seçeneklere göre bir şart cümlesinin oluşturulması gerekmektedir.

Linqte dinamik şart cümlesi oluşturmak için öncelikle projemize System.Linq.Dynamic
referansını eklememiz gerekmektedir.

Referansı ekledikten sonra yapmamız gereken linq sorgumuzu şu şekilde yazmaktır:

var people1 = people.Where("Id > 3 OR Name = \"Sait\"");

Böylece where içindeki şartımızı dinamik olarak oluşturmuş olduk.

Entity Framework kullanırken zorluk çıkaran bir diğer durumda lazy loadingin pasif olması durumunda anahtarla başka tablolara bağlı olan nesnelerin Include ile sorgula eklenmesi durumudur. Burada da Include edilecek olan nesneler duruma göre değişebiliyor. Bu durumda Include edilecek nesneleri dinamik olarak sorguya eklememiz gerekmektedir. Bu şekilde çalışan örnek bir kod parçası:

List includeList = new
List();
LibraryContext entity = new
LibraryContext();
IQueryable jobGroups = entity.JobGroups.Where(j => j.Id == id);
foreach (string s in includeList)
{
jobGroups.Include(s);
}
List groups = jobGroups.ToList();

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.