Tôi muốn sắp xếp theo kết quả của mình với số lần đối sánh trong chuỗi ký tự của tôi.Tách chuỗi bằng LINQ
Vì vậy, đây là mã
.ThenByDescending(p => p.Title.ToLower()
.Split(' ')
.Count(w => words.Any(w.Contains)));
Nhưng nó mang lại cho tôi lỗi và nói rằng LINQ không thể phân tích Split
vào SQL.
LINQ to Entities không nhận ra phương pháp 'System.String [] Split (Char [])' phương pháp, và phương pháp này không thể được dịch sang một biểu cửa hàng.
Làm cách nào để triển khai chia tách qua LINQ?
Ví dụ, đối với mảng này thì phải đặt hàng theo cách này
words = { "a", "ab" }
ab a ggaaag gh //3 matches
ba ab ggt //2 matches
dd //0 matches
Nhưng điều đó sẽ khiến tải tất cả dữ liệu trong bộ nhớ và thực hiện chuyển đổi LINQ thành đối tượng với bộ nhớ, nó sẽ không? – abatishchev
Đúng vậy. Tối ưu bạn có thể áp dụng các điều kiện trong mệnh đề where trước khi gọi 'AsEnumerable'. bạn không thể làm điều đó mà không mang các vật thể vào bộ nhớ –
Tôi đoán nó sẽ sụp đổ với các bảng lớn. Tôi đồng ý với abatishchev. –