Bu makalemizde SQL’deki LIKE komutunun LINQ’teki uygulanma yöntemlerini inceleyeliceğiz.

Kitap bilgilerimizin bulunduğu kitapbilgisi isimli bir tablomuzun olduğunu düşünelim.  Bu tabloda isminin içerisinde “server” geçen kitapların isimlerini listelemek istiyoruz. C# 2.0’da bunun için yazacağımız kod şu şekilde olurdu :
“ SELECT adi FROM kitapbilgisi WHERE adi LIKE ‘%server%’ “
LINQ’te kullanırken iki yöntem uygulayabiliriz. İlk yöntem Contains metodu, ikinci yöntem ise LIKE metodu.
Uygulamamız için öncelikle bir adet DataClasses ekliyoruz ve veritabanı bağlantısı oluşturup kitapbilgisi tablosunu DataClasses1 içerisine yerleştiriyoruz:
Temel işlemler (DataClasses ekleme ve veritabanı bağlantısı) için bu linkte bulunan makaleyi inceleyebilirsiniz.
Öncelikle bu işlemi Contains metodu ile nasıl yapacağımızı inceleyelim:
private void ContainsIleVerileriAl()
{
        DataClasses1DataContext dc = new DataClasses1DataContext();
        var kitaplar = from kitap in dc.kitapbilgisis
                       where kitap.adi.Contains(“server”)
                       select kitap.adi;
        foreach (string kitap in kitaplar)
               listBox1.Items.Add(kitap);
        }
where kitap.adi.Contains(textBox1.Text) : WHERE koşulunda kitabın adının içerisinde “server”stringi var olanların adi bilgilerini kitaplar değişkenine ekler.
Şimdi de Like metodu ile nasıl yapacağımızı inceleyelim. Bunun için öncelikle using bölümüne
using System.Data.Linq.SqlClient; ‘ı ekliyoruz.
private void LikeIleVerileriAl()
{
        DataClasses1DataContext dc = new DataClasses1DataContext();
        var kitaplar = from kitap in dc.kitapbilgisis
                       where SqlMethods.Like(kitap.adi, “%server%”)
                       select kitap.adi;
        foreach (string kitap in kitaplar)
               listBox1.Items.Add(kitap);
}
where SqlMethods.Like(kitap.adi, “%server%”) : SqlMethods sınıfı,System.Data.Linq.SqlClient namespace’i içinde yer almaktadır. Adından da anlaşılacağı gibi bazı SQL metotlarını içinde bulunduran bu sınıfın Like metodunu kullanıyoruz. İlk parametre, tablonun hangi sütununda çalışılacağını gösterir. İkinci parametre ise arama kriterini gösterir.
Uygulamamızın ekran çıktısı aşağıdaki gibidir:
linq-to-sql-like-1

linq-to-sql-like-1