deux conditions de la vérification dans la clause where à l'aide de linq 2 entités
salut j'ai un tableau appelé "produits", avec des colonnes
product_id
prodcut_name
prodcut_price( values like 1200,2000,3000,100)
prodcut_desc
category_id(1,2,3,.....)
anorther table de catégories avec des colonnes
category_id(1,2,3.......)
category_name(a,b,c....)
et le nom de l'entité est dbcontext...
Comment puis-je obtenir les produits avec un nom de catégorie "a" et le prix du produit est >500 et <10000
je suis à l'aide de linq to enitities...
tout pls aider sur ce......
Merci beaucoup....
OriginalL'auteur rockyashkumar | 2011-09-02
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour les opérateurs de logique, et ce sont ceux que vous allez utiliser en c#:
&&
logiqueAND
||
logiqueOR
!
logiqueNOT
^
logique (bit à bit)XOR
COND ? TRUE-STATEMENT : FALSE-STATEMENT
opérateur ternaireDe sorte que votre composite de l'état dans le pseudo-code va ressembler:
Maintenant, si vous n'avez pas de clé étrangère dans la DB, lorsque vous avez créé votre contexte, il n'en aura DBSets, et ils ne vont pas avoir des propriétés de navigation. Donc votre seule option est d'utiliser la Cabine.Jockey de réponse.
Si vous avez des clés étrangères dans la bd, vous aurez les propriétés de navigation sur votre objets de l'entité et vous serez en mesure de faire ce qui suit:
Alternativement, vous pouvez utiliser LINQ méthodes d'extension directement:
Si vous avez besoin d'une liste ou d'une matrice, et souhaitez fermer dbcontext vous appelez soit
ToList
ouToArray
surquery
:Il y a autre moyen de le faire avec Entity Framework (EF) - construire-dans le EntitySQL langage de requête. Vous allez devoir expression similaire:
où
ProductsQuery
estObjectQuery<Product>
.Pour votre version aurait-il besoin de faire dbcontext.produits.Include("catégorie")?
op: si vous avez créé vous avez généré tapé DataContext après l'ajout de clés étrangères , cette navigation properities seulement existent pour vous
merci beaucoup... est-ce de requête possible avec les expressions lambda......
Cabine.Jockey: il se complique pas. première
Include
est pour EF pas Linq2Sql, second - vous n'avez pas besoin de l'inclure lors de la définition de la condition de la requête, cependant, vous aurez besoin d'appelerLoadWith
pour Linq2Sql requête afin d'désireux de charge de la catégorie ainsi que les produitsOriginalL'auteur vittore
Revenir un IQueryable avec les résultats filtrés.
Basé sur Vittore la réponse ci-dessous, si il y a une contrainte de clé étrangère, ce serait la plus appropriée version:
grâce vittore 🙂
OriginalL'auteur Cubicle.Jockey
rejoindre le produit et les catégories tables sur
category_id
et ensuite utiliser unwhere
pour filtrerproduct_price
.OriginalL'auteur MAK