Dans le code suivant, value est une chaîne avec des valeurs séparées par des virgules dont chacune est un nom de type. Je veux obtenir les entités qui ont été liées avec l'un de ces types ou ayant un de ces types dans leur description. J'ai écrit le linq à sql servery suivant et je reçois toujours 0 quand il y a certainement des entités avec ces types. Peux-tu aider s'il te plait?Aide sur la requête Linq to sql
string[] allValues = value.Split(',');
var allTypes = ModelFactory.GetRepository<IRestaurantTypeRepository>().GetAllTypes();
return from ent in matchingEntities
from typeLink in ent.EntityRestaurantTypeLinks
join type in allTypes on typeLink.RestaurantTypeId equals type.RestaurantTypeId
where allValues.Contains(typeLink.RestaurantType.TypeName)
|| (
allValues.Contains(type.TypeName)
&& ent.Description.Contains(type.TypeName)
)
select ent;
EDIT
J'ai divisé la déclaration en deux. Après cela, la deuxième déclaration est devenue comme ça.
from ent in matchingEntities
where allValues.AsEnumerable().Any(va =>
ent.Description.Contains(va))
select ent;
Dans ce cas, allValues est le type chaîne []. ent.Description est un contenu de chaîne. Je veux juste obtenir les entités dont la description contient n'importe quelle valeur de toutes les valeurs. La déclaration ci-dessus ne donne pas de résultats.
@lc, j'ai essayé votre solution et je reçois toujours 0 résultats. – mohang
@mohang, Etes-vous peut-être confronté à des problèmes de sensibilité à la casse alors? Je le vois, il devrait fonctionner. De plus, vous avez coché 'allValues' à l'exécution et les entités sont renvoyées ok si vous ne filtrez pas avec une clause where? –