0

Mon programme a une base de données avec 100.000 enregistrements quand je veux rechercher et filtrer simultanément dans mon programme avec la recherche de texte complet dans SQL Server mais dans le cadre d'entité Il dose pas. le nom de la bibliothèque est je « Fissoft.EntityFramework.Fts »retourner null dans l'utilisation de la recherche plein texte dans l'infrastructure

var text = FullTextSearchModelUtil.FreeText("searched text", true); 
      var query = db.Mainindustapp.Where(c => c.UnitName.Contains(text)).ToList(); 
      return query.ToList(); 

mais quand j'envoie le code de recherche de texte intégral directement au serveur SQL il sera réponse. ci-dessous le code est ce que j'ai dit:

Mainindustapp = db.Mainindustapp.SqlQuery 
      ("SELECT * FROM[DB_industapp].[dbo].[Mainindustapps] WHERE FREETEXT(([UnitName], [Product]), @p0)", SearchString); 

et je devrais mentionner que les catalogues est activé dans le serveur SQL.

+0

Vous ne recherchez' UnitName' via Linq/EF, mais ' UnitName' ** OU ** 'Product' lors d'une requête via Sql. Avez-vous déjà essayé '.Where (c =>" * ". Contient (texte))' comme suggéré dans la [démo] (https://github.com/fissoft/Fissoft.EntityFramework.Fts/blob/master/README .Maryland)? – Filburt

+0

obtenez-vous quelque chose dans 'query' ?? et pourquoi renvoyez 'query.ToList()' vous pouvez omettre la partie tolist, juste passer la requête. Il est déjà dans le format de la liste –

Répondre

-1

Vous ne rechercher par un NomUnité lorsque vous écrivez ceci:

var query = db.Mainindustapp.Where(c => c.UnitName.Contains(text)).ToList(); 

Essayez et je pense que cela va fonctionner:

var query = db.Mainindustapp.Where(c =>"*".Contains(text)).ToList(); 
0

Pour ce faire, s'il vous plaît utiliser cette « EfFts install-Package "bibliothèque

s'il vous plaît consulter le site: https://effts.codeplex.com/