所以,我有這樣的lambda表達式,它工作得很好對實體框架的字符串大小限制包含條款
list = list.Where(x => x.ListaDocumentoCaixa.Any(d => d.Observacao.Contains(term.Trim())));
我必須補充,這列是varchar(6000)
場。到目前爲止,正如我所提到的那樣,這一直工作得很好,但最近我遇到了一個問題。似乎如果搜索的詞語從字符串的位置4001開始,則查詢無法將任何內容返回給我。
一些debbuging後,我發現然而,這評價了實體框架生產
-- p__linq__0: 'maria stela gonsa' (Type = String, Size = 4000)
然後經過一番研究,我發現這是實體的共同行爲的查詢,我不能有這樣的限制應用程序。我的問題是:有沒有辦法改變這種行爲?如果可能,我非常希望避免以純文本的形式編寫此查詢,並使用ExecuteQuery
執行此操作。
在此先感謝您的幫助!
你有沒有試過使用'任何'的'第一'巴德?它會增加你的表演。 – PedroSouki
我遇到的問題實際上並不是性能,問題是Entity Framework不會在我的領域的4000位以外進行搜索。性能方面,我根本沒有任何問題 –
但這隻意味着'term'不能超過4000.我可以在一個超過4000個字符的'nvarchar(max)'字段中進行搜索,並且查詢被翻譯爲' LIKE'。你在哪個數據庫(提供者+版本)? –