Linq compare string date / string tarih karşılaştırma

  1. cemmm
    2
    987
    15.11.2019 17:23:00

    Aşağıdaki gibi tarih alanı string/varchar olan bir tablom var ve içindeki veriler şunlar;

    Id  tarih
    1   20110101000000
    2   20151010000000
    3   20191111000000
    

    design

    Id    int   
    tarih    varchar(50)    
    

    şimdi ben bu tarih alanı string olduğu için, karşılaştırma yaparken şöyle bir yöntem buldum

    String str1 = "20110102000000";
    String format = "yyyyMMddhhmmss";
    DateTime d1 = DateTime.ParseExact(str1, format, null);
    
    var data = from a in dbContext.TestTarih
    let arrivalDate = DateTime.ParseExact(a.tarih, format, null)
    where  arrivalDate >= d1
    select a;
    
    var data2 = data.ToList();
    

    fakat şu hatayı veriyor ;

    System.NotSupportedException: 'LINQ to Entities does not recognize the method 'System.DateTime ParseExact(System.String, System.String, System.IFormatProvider)' method, and this method cannot be translated into a store expression.'

    napabilirim başka ?

    .net c# 20 gün önce 62 Görüntüleme

( 1 ) Cevap

  1. sami
    2
    205
    15.11.2019 17:49:00
    var data = from a in dbContext.TestTarih
    let arrivalDate = DateTime.ParseExact(a.tarih, format, null)
    where  arrivalDate >= d1
    select a;
    

    aşağıdaki gibi yapsan çalışır, entityne AsEnumerable() eklesen yeter yani

    var data = from a in dbContext.TestTarih.AsEnumerable()
    let arrivalDate = DateTime.ParseExact(a.tarih, format, null)
    where  arrivalDate >= d1
    select a;
    

Cevabınız