SqlFunctions.StringConvert akan berfungsi, tetapi saya merasa rumit, dan sebagian besar waktu, saya tidak memiliki kebutuhan nyata untuk melakukan konversi string di sisi SQL.
Apa yang saya lakukan jika saya ingin melakukan manipulasi string adalah melakukan kueri di linq-to-entitas terlebih dahulu, kemudian memanipulasi sengatan di linq-to-object. Dalam contoh ini, saya ingin mendapatkan satu set data yang berisi nama lengkap kontak, dan ContactLocationKey, yang merupakan rangkaian string dari dua kolom Integer (ContactID dan LocationID).
// perform the linq-to-entities query, query execution is triggered by ToArray()
var data =
(from c in Context.Contacts
select new {
c.ContactID,
c.FullName,
c.LocationID
}).ToArray();
// at this point, the database has been called and we are working in
// linq-to-objects where ToString() is supported
// Key2 is an extra example that wouldn't work in linq-to-entities
var data2 =
(from c in data
select new {
c.FullName,
ContactLocationKey = c.ContactID.ToString() + "." + c.LocationID.ToString(),
Key2 = string.Join(".", c.ContactID.ToString(), c.LocationID.ToString())
}).ToArray();
Sekarang, saya yakin bahwa itu tidak praktis untuk harus menulis dua pilihan anonim, tetapi saya berpendapat bahwa ini sebanding dengan kenyamanan di mana Anda dapat melakukan fungsi string (dan lainnya) yang tidak didukung di L2E. Juga perlu diingat bahwa mungkin ada penalti kinerja menggunakan metode ini.