Nettiers – Unable to use this part of the where clause in this version of Find:

Bu hatayı çok sık olmamakla beraber şu şekilde alabiliriz :
Katman bastırılırken windows un culture ı diyelimki İngilizce olsun, sonra katmanı kullanan bir yazılım diyelimki Turkce bir culture da çalışsın. Böyle bir durumda ; nettiers olası case sensitive lik sorununu çözebilmek adına Find(…) methoduna aldığı whereclause u ToLower() yaptığı için; bastırdığı zamanki ToLower() büyük I ları küçük i ye çevirirken çalışma anındaki ToLower() Türkçe culture olduğu için büyük I ları küçük ı ya çevirecektir. böylece aslında bizim yıllardır çalışan katmanımız , bir şekilde katman basılan makinedeki culture değişikliğinden dolayı proje patlaklar vermeye başlayacaktır.
Çözüm basittir çalışma ortamındaki culture ile katmanın basıldığı makinedeki culture ı herzaman için aynı tutmak.

Not: Windows forms projelerimizde Culture kullanıcının ayarlarından otomatik olarak alınmaktadır. Buda bizim işimizi zaman zaman bozabilir. Bunu önlemek adına programın main bloğuna aşağıdaki kodu ekleyerek projemizin çalışma anındaki culture ı kendimiz sabit bir değer olarak belirleyebiliriz.

            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("tr-TR");
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("tr-TR");

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">