2016-11-25 2 views
0

Also habe ich einen DB Interceptor wie in dieser article beschrieben eingerichtet.EF6: FullText Suche arbeitet nicht mit mehreren WHERE

-Code, das funktioniert:

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, der nicht funktioniert:

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

Ich bekomme keine Fehler, aber die Ergebnisse sind völlig aus. Ich bekomme keine Ergebnisse mit mehreren WHERE wo JOIN funktioniert wie erwartet.

+1

Sind Sie sich sicher über Inhalte in Sometable.Name? Ich nehme an, es wäre besser zu überprüfen, ob es NullOrEmpty ist – Egorikas

+0

Ich aktualisierte die Frage, fügte 'NULL' hinzu Prüfbedingung –

Antwort

0

Sind Sie 100% sicher, dass Sometable.Name immer Daten enthält? Vielleicht möchten Sie diese Zeile lesen var queryable2 = db.Sometable.Where(x=> (x.Name ?? "").Contains(ft));, so dass es nie einen Nullwert gibt.

+0

Ich probierte das Hinzufügen von Nullprüfung und ja der Fehler ging weg, aber ich bekomme kein Ergebnis mit mehreren' WHERE' –

+0

Überprüfen Sie meine Antwort hier: http://stackoverflow.com/a/41167438/875708 – akd

Verwandte Themen