SqlFunctions.StringConvert işe yarayacak, ama hantal buluyorum ve çoğu zaman, SQL tarafında dize dönüştürme gerçekleştirmek için gerçek bir ihtiyaç yok.
Dize manipülasyonları yapmak istersem ne önce ilk linq-to-varlıklarda sorgu gerçekleştirmek, sonra linq-nesnelerde sokmaları manipüle etmektir. Bu örnekte, bir Kişi tam adı ve iki Tamsayı sütun (ContactID ve LocationID) dize birleştirme olan ContactLocationKey içeren bir veri kümesi elde etmek istiyorum.
// 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();
Şimdi, iki anonim seçim yazmak zorunda kalmayı kabul ediyorum, ancak L2E'de desteklenmeyen dize (ve diğer) işlevleri gerçekleştirebileceğiniz kolaylıktan daha ağır bastığını iddia ediyorum. Ayrıca, bu yöntemi kullanarak muhtemelen bir performans cezası olduğunu unutmayın.