Di Linq ke entiti, pengaturcara mungkin menghadapi kesukaran ketika cuba menukar integer dalam pertanyaan ke rentetan. Penukaran boleh menyebabkan kesilapan, seperti yang ditunjukkan dalam contoh berikut:
Kaedah lain ialah menggunakan kaedah ToString (), yang nampaknya merupakan penyelesaian yang layak:
<code class="language-c#">var items = from c in contacts select new ListItem { Value = c.ContactId, // 无法隐式转换类型“int”(ContactId)到“string”(Value)。 Text = c.Name };</code>
Walau bagaimanapun, percubaan ini juga akan gagal, kerana Linq kepada entiti tidak menyokong ToString (), yang akan menjana keabnormalan.
<code class="language-c#">var items = from c in contacts select new ListItem { Value = c.ContactId.ToString(), // 抛出异常:LINQ to Entities 不支持 ToString()。 Text = c.Name };</code>
EF V4 menyelesaikan masalah penukaran ini melalui kaedah sqlfunctions.stringconvert. Kaedah ini menyediakan mekanisme yang menukarkan nilai kepada rentetan, tanpa penukaran eksplisit. Kod berikut menunjukkan penggunaannya:
Dengan menukar integer ke ketepatan ganda dalam parameter StringConvert (), integer boleh berjaya diubah menjadi rentetan di Linq ke entiti.Atas ialah kandungan terperinci Bagaimana cara menukar bilangan bulat ke linq ke entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!