Je suis confronté à un scénario où je dois filtrer un seul objet basé sur de nombreux objets. Par exemple, j'ai un objet Grocery qui comprend à la fois des propriétés de fruits et de légumes. Puis j'ai l'individu Fruits et Objets végétaux.Une seule expression de requête LINQ peut-elle être encadrée dans ce scénario?
Mon objectif est le suivant:
var groceryList = from grocery in Grocery.ToList()
from fruit in Fruit.ToList()
from veggie in Vegetable.ToList()
where (grocery.fruitId = fruit.fruitId)
where (grocery.vegId = veggie.vegId)
select (grocery);
Le problème que je suis confronté est lorsque les fruits et légumes objets sont vides. Par vide, je veux dire que leur nombre de liste est 0 et je veux appliquer le filtre seulement si la liste de filtre est remplie.
Je suis également pas en mesure d'utiliser quelque chose comme puisque les objets sont nuls:
var groceryList = from grocery in Grocery.ToList()
from fruit in Fruit.ToList()
from veggie in Vegetable.ToList()
where (grocery.fruitId = fruit.fruitId || fruit.fruitId == String.Empty)
where (grocery.vegId = veggie.vegId || veggie.vegId == String.Empty)
select (grocery);
, je compte donc pour vérifier fruits et nombre de légumes liste ... et les filtrer comme séparer les expressions sur successivement filtré Épicerie objets.
Mais existe-t-il un moyen de toujours obtenir la liste dans le cas d'objets NULL dans une seule expression de requête?
Êtes-vous juste essayer faire une jointure avec Linq? Désolé, je ne comprends pas complètement la question. –
Exactement, juste une jointure. Mais quelle est la meilleure approche à adopter lorsque l'un des objets filtre est nul? –
C'est pourquoi c'est une bonne idée d'interdire les collections nulles. Tout le code que j'écris impose que les nulls ne soient jamais utilisés, en faveur des collections vides. – bobbymcr