2016-11-25 12 views
0

このように、articleで説明されているようにDBインターセプタをセットアップしました。作品EF6:複数のWHEREで動作しない全文検索

コード:

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(); 

コードは動作しません:

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(); 

私はすべてのエラーを得ることはありませんが、結果は完全にオフになっています。 JOINが期待通りに機能するように、複数の結果が得られません。WHERE

+1

Sometable.Nameのコンテンツは本当ですか?私はそれをチェックする方が良いでしょうそれがNullOrEmptyの場合 – Egorikas

+0

質問を更新し、NULLをチェック条件として追加しました –

答えて

0

あなたはSometable.Nameに常にデータが含まれていることを100%確信していますか?その行にヌル値がないように、その行をvar queryable2 = db.Sometable.Where(x=> (x.Name ?? "").Contains(ft));としたい場合があります。

+0

nullチェックを追加しようとしましたが、エラーがなくなりましたが、複数の 'WHERE'を使って結果が得られません –

+0

私の答えをここで確認してください:http://stackoverflow.com/a/41167438/875708 – akd

関連する問題