2016-11-25 3 views
0

그래서이 article에 설명 된대로 DB 인터셉터를 설정했습니다. 작동EF6 : 전체 텍스트 검색이 여러 곳에서 작동하지 않습니다

코드 :

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 % 확신합니까? null 값이 없도록 해당 행을 var queryable2 = db.Sometable.Where(x=> (x.Name ?? "").Contains(ft));으로 읽으려고 할 수 있습니다.

+0

null 검사를 추가하려고 시도했지만 오류가 사라졌지만 여러 개의 결과를 얻지 못했습니다. –

+0

내 대답을 확인하십시오 : http://stackoverflow.com/a/41167438/875708 – akd

관련 문제