Dans une relation de plusieurs à plusieurs, quand on veut faire un "select * from x inner join y where y.id = @id" il nous dit souvent :
"To extract a property of a collection element, use a subquery to iterate over the collection."
Pour palier à ce petit inconvénient il suffit de mettre
Where="EXISTS(SELECT Produits.ProduitId FROM it.Produits WHERE Produits.ProduitId = @id)"
Comme ça on utilise une sous requête comme il faut !
mais on n'a pas plus accès à la propriété à la multiplicity = * (many)...
Joyeux Codage !
PS. De plus, en VB ! Une belle manière d'accéder à sa NavigationProperty :
Dim listeDeProduitBois = CType((From p In db.Produits"Imports System.Data.Objects" pour le "ObjectQuery".
From b In p.Bois1
Where b.BoisId = x.BoisId
Select p), ObjectQuery(Of Produits)).Include("Descriptions")
PS2. Un autre beau where (dans un beau tutorial): @PersonID IN (SELECT VALUE instructor.PersonID FROM it.People AS instructor)
Aucun commentaire:
Enregistrer un commentaire