Tôi muốn tìm kiếm này:LINQ to Entities (EF 4.1): Cách thực hiện một câu lệnh SQL LIKE với một ký tự đại diện ở giữa ('% term% term%')?
Post Cereal
và có được điều này:
Post Honey Nut Cereal
nơi thẻ hoang dã sẽ là không gian.
Tôi biết tôi có thể thực hiện SPLIT và một loạt AND và chứa() và dịch sang Biểu thức LINQ cho mỗi cụm từ dưới dạng đối tượng đặc tả, nhưng không có cách nào để tôn trọng ký tự đại diện trong thuật ngữ được gửi tới SQL ? Tôi đã xem các hàm SQL trong đó nó nằm trong LINQ to SQL, nhưng tôi không chắc nó là gì trong LINQ to Entities.
Tôi muốn làm điều gì đó như thế này:
term = '%' + term.Replace(' ', '%') + '%';
db.table.where(p => System.Data.Objects.SqlClient.SqlFunctions
.SqlMethods.Like(p.fieldname, term));
Bất kỳ lời đề nghị?
Điều này xứng đáng được nhiều phiếu bầu hơn. Điều này làm việc hoàn hảo cho tôi mà không có nhiều phức tạp. –
Tiến sĩ Zim đã đúng, đang tìm kiếm giải pháp trong vài giờ và đây là giải pháp đơn giản nhất mà tôi tìm thấy. – user1841243
Tôi đã thử điều này trong .NET và trực tiếp trong TSQL và cả hai cách đều không hiệu quả với tôi. Sử dụng EF 5, .NET 4.5 và VS 2012 – Matt