EF6: FullText Search not working with multiple WHERE

╄→гoц情女王★ 提交于 2019-12-25 08:20:13

问题


So I have setup an DB interceptor as described in this article.

Code that works:

var ft = FtsInterceptor.Fts('something');
var queryable1 = db.Sometable.Where(x=> x.Id > 30);
var queryable2 = db.Sometable.Where(x=> x.Name != null && x.Name.Contains(ft));
var final = (from q1 in queryable1 join q2 in queryable2 on q1.Id equals q2.Id select q1).ToList();

Code that doesn't work:

var ft = FtsInterceptor.Fts('something');
var queryable = db.Sometable.Where(x=> x.Id > 30);
queryable = queryable.Where(x=> x.Name != null && x.Name.Contains(ft));
var final = queryable.ToList();

I don't get any errors but the results are completely off. I get no results with multiple WHEREwhere as JOIN works as expected.


回答1:


Are you 100% certain that Sometable.Name always contains data? You might want to make that line read var queryable2 = db.Sometable.Where(x=> (x.Name ?? "").Contains(ft)); so that there is never a null value.



来源:https://stackoverflow.com/questions/40807159/ef6-fulltext-search-not-working-with-multiple-where

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!