0 votes

Critères Linq to Sql dans un tableau de chaînes de caractères

J'ai dit trois tables.

Projets

  • Id
  • Nom

Catégories

  • Id
  • Nom

Catégories de projets

  • Id
  • ProjectId
  • CategoryId

J'ai maintenant un tableau de chaînes de caractères qui représente les catégories sur lesquelles l'utilisateur a choisi d'effectuer une recherche. J'ai maintenant besoin de trouver tous les projets qui ont cette catégorie attachée à eux.

J'ai essayé ;

string[] searchTerms = new string[2];
searchTerms[0] = "paint";
searchTerms[1] = "painting";

IQueryable<Project> projects = (from category in dc.ProjectCategories
where searchTerms.Any(val => category.Category.Name.Contains(val))
select category.Project).Distinct();

Mais je reçois l'erreur ;

{"La séquence locale ne peut pas être utilisée dans la mise en œuvre des opérateurs de requête de LINQ to SQL, à l'exception de l'opérateur Contains()."}

1voto

tvanfosson Points 268301

À moins que je ne me méprenne, ce qui est possible, je pense que vous pouvez simplement faire un contenant avec les searchTerms

where searchTerms.Contains( category.Category.Name )

cela se traduira en SQL par

... WHERE Name IN ('paint','painting') ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X