Entity Frameworkde çalisirken LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression seklinde bir hata aliyorsaniz bu veritabanindan verileri çekip SelectedListItem'in tipinde bir nesneye yazdirilirken meydana gelebilmektedir.
Bildiginiz gibi SelectedListItem'in Text ve Value propertileri bulunmakta burada siz veritabanindan entity framework ile kaydi çekerken Value alanina tabloda integer tipinde olan bir deger yazdirmak istiyorsunuz fakat SelectedListItem'da Value propertisi string deger bekleyecek sekilde tanimlanmistir. Bu durumda sizin veritabaninda çekeceginiz integer tipindeki kaydi string e dönüstürmeniz gerekmektedir. C# daki ToString() metodu kullanilinca çevirmiyor hata veriyor bu durumda SqlFunction in StringConvert metodunu kullanarak çevirebiliriz. StringConvert metoduda parametre olarak double parametreleri string e çevirmektedir.
Ilk olarak integer kaydi double tipine çevirip daha sonra StringConvert metodu ile string tipine çevirirseniz islemimiz çözülmüs olur.
Örnek: SqlFunctions.StringConvert((double)Makale.Id));
Not: SqlFunctions' ida kullanabilmek için kütüphanesini eklemeyi unutmayalim
COMMENTS