Linq sorgusunda Datetime alan zaman olmadan nasıl sorgulanır?

0

Linq, Lambda query'de türü Datetime olan bir alan var. Form üzerinden sadece tarih geliyor. Veriler veritabanında 2018-12-18 17:55:22.647 formatında. Benin şu şekilde bir kodum var:

from v1 in db.Haber where v1.Tarih == t1 

Burada t1 Datetime picker kontrolünden geliyor ve sadece 18.12.2018 gibi sadece tarihi barındırıyor. Ben bu şekilde sorgulama yaptığımda doğal olarak hiç bir sonuç dönmüyor.

Veritabanında türü Datetime olan alanda sadece tarih sorgulamasını linq ile nasıl yaparım?

alattin alattin (17125)
5 yıl önce sordu

    Toplam 1 Cevap


    0

    Linq sorgusunda sadece tarih alanını sorgulamak istiyorsanız DbFunctions.TruncateTime fonksiyonundan yararlanabilirsiniz. DbFunctions.TruncateTime size Datetime olan bir alandan sadece Date döndürür.  DbFunctions.TruncateTime fonksinonu kullanabilmek için kodunuzun başına şı direktif satırını eklemelisiniz:

    using System.Data.Entity;

    Daha sonra sorgunuzu şu şekilde yazabilirsiniz:

    from v1 in db.Haber where  DbFunctions.TruncateTime(v1.Tarih) == t1 

    Bu şekilde artık sadece sadece tarih alanı üzerinden sorgulama yapabilirsiniz.

    alattin alattin (17125)
    5 yıl önce cevaplandı

      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol