Dire que j'aurais la structure de base de données suivante: façon Performant pour aller chercher toutes les lignes à l'intérieur et parent extérieur enregistrement
Et je voulais obtenir tous les enregistrements de ligne qui sont dans une page.
Les PageItems Table contient soit une valeur LineID ou une ParagraphId valeur pour chaque enregistrement.
page
Id Title ----------- 1 My page
PageItems
PageId LineId ParagraphId ------------------------- 1 1 NULL 1 2 NULL 1 NULL 1
Paragraphe
Id -- 1
ParagraphItems
ParagraphId LineId ------------------ 1 3 1 4
Ligne
Id Content ------------------ 1 Loose line 1 2 Loose line 2 3 Paragraph line 1 4 Paragraph line 2
Ma première pensée utilisait UNION, mais étant donné que ce sont des grandes tables qui ne seraient pas bien. Donc, je suis à la recherche d'une solution de requête unique sur laquelle je peux filtrer après avoir sélectionné les lignes.
Comment voulez-vous les gars approcher cela?
N'est-il pas possible que vous obteniez des lignes dupliquées, si un lien PageItem vers cet ID et un autre PageItem le lient indirectement via Paragraphe? Vous voulez ces doublons? –
Les doublons @TimSchmelter ne posent aucun problème, je peux les filtrer plus tard. –
@GertArnold, toutes les tables ont les clés étrangères appropriées pour que les propriétés de navigation soient exactement là où vous les attendez. Oui L2S pas EF. –