Situation:Beaucoup à plusieurs avec plusieurs clés primaires?
TableParent avec 2 primaryKeys, ParentKey1 et ParentKey2 TableChild avec 1 primaryKey, ChildKey TableConnector avec des colonnes ParentKey1, ParentKey2 et ChildKey
C'est là, je pense que je devrais aller avec ma requête Linq. Notez que je récupère tous les enfants appartenant à un parent, donc j'ai ses clés comme paramètres.
var query = from conn in db.TableConnector
join child in db.TableChild on conn.ChildKey equals child.childKey
join par in db.TableParent on conn.ParentKey1 equals par.parentkey1 into connGroup
from co in connGroup
where co.ParentKey1 == Parameter1
Select child;
Eh bien, je tthink cela fonctionne jusqu'à un certain point, disons que si le parent avait qu'une seule clé, suis-je raison?
Je suppose que je dois rejoindre un peu plus dans un deuxième groupe mais je suis actuellement perdu.
Oui, je voulais dire clé primaire composite car il y a deux colonnes définissant la clé primaire. Comme je l'ai mentionné, SQL n'est pas mon fort. Je vais vérifier cette solution. Je suis sûr que cela fonctionne mais je suis également curieux de savoir comment le faire avec le même type de requête que je le fais car cela pourrait m'aider avec le SQL lui-même. –
Désolé je ne suis pas vraiment dans la syntaxe 'query', je trouve cela très peu intuitif et je suis un peu fatigué de le traduire avec précision. Mais le point crucial est que vous n'avez pas à joindre manuellement les tables - c'est ce que fait le code LINQ-to-SQL pour vous. –
Essayer votre ancienne solution J'ai une erreur "L'argument type ne peut pas être déduit de l'utilisation". Le SelectMany ne retourne-t-il pas les objets TableConnector au lieu des objets TableChild? Juste prendre des sélections au lieu de selectMany est sans erreur. Aussi, puis-je envelopper dans un objet en quelque sorte? comme ancien type de requête "sélectionnez un nouveau wrapper (enfant);" –