SqlFifts.StringConvert sẽ hoạt động, nhưng tôi thấy nó cồng kềnh và hầu hết thời gian, tôi không có nhu cầu thực sự để thực hiện chuyển đổi chuỗi ở phía SQL.
Những gì tôi làm nếu tôi muốn thực hiện các thao tác chuỗi là thực hiện truy vấn trong linq-to-entity trước, sau đó thao tác các stings trong linq-to-object. Trong ví dụ này, tôi muốn có được một tập hợp dữ liệu chứa tên đầy đủ của Liên hệ và ContactLocationKey, đó là cách nối chuỗi của hai cột Số nguyên (ContactID và 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();
Bây giờ, tôi cho rằng sẽ rất khó khăn khi phải viết hai lựa chọn ẩn danh, nhưng tôi cho rằng nó vượt trội hơn bởi sự tiện lợi mà bạn có thể thực hiện các hàm chuỗi (và các hàm khác) không được hỗ trợ trong L2E. Cũng nên nhớ rằng có thể có một hình phạt hiệu suất sử dụng phương pháp này.