Entity Framework ile Site İçi Arama

Öncelikle Master Page imizde bulunan TextBox'tan alacağımız veriyi tutacak bir static class değişkeni tanımlıyoruz.


public static class Sabits
{
      public static string kelime{ get; set; }
}

Sonrasında MasterPage'imizdeki arama butonununun click Event'inde TextBox'ın boş olup olmadığını kontrol ettikten sonra siz farklı validationlarda koyabilirsiniz. (Örn: Sadece harf sayı ve boşluk kontrolü )

protected void btnAra_Click(object sender, EventArgs e)
 {
            if (!String.IsNullOrEmpty(txtAra.Value))
            {
                Sabits.kelime = txtAra.Value; //TextBox'tan gelen değeri Static değişkenimize atıyoruz.
                Response.Redirect("ara.aspx"); // ve sonuç sayfamıza yönleniyoruz
            }
            else
                Response.Redirect("Buludugunuzsayfa.aspx"); //ya da uyarı verdirebilirsiniz

}

Ara sayfasının Page_Load olayında..

kodstrapentities db = new kodstrapentities(); // veritabanı model örneğimiz
 protected void Page_Load(object sender, EventArgs e)
  {
                if (!String.IsNullOrEmpty(Sabits.kelime))
                {
                    string aranan_kelime= Sabits.ara_kelime.ToLowerCase(); /* aranan kelimenin harflerini küçültüyorum. */
                  
/* Makale tablomuzdaki kolonlarımız ToLower() yaparak Contains methotuyla aranan kelimenin kolon değerlerinde bulunup bulunmadığını kontrol ediyoruz ve sonucu bir değişkene atıyoruz. */


   var sonuclar = db.Makale.Where(o =>o.baslik.ToLower().Contains(kelime) || o.icerik.ToLower().Contains(kelime) || o.tags.ToLower().Contains(kelime)).ToList();
         
/* Son olarak geriye bir sonuç dönüp dönmediğini kontrol ederek Repeater ya da Diğer Veri Kontrollerimize Bind Ediyoruz. */

if(sonuclar!=null&&sonuclar.Count()>0){
      rptResults.DataSource = sonuclar;
      rptResults.DataBind();
}
else{
     //Uyarı yada başka bir sayfa yönlendirme
}



}
else
   //Uyarı!! ya da yönlendirme

 }


İyi Kodlar!