2009-08-14 9 views
0

Je suis en train d'écrire un test unitaire de ma maquette de repositoy. Alors que le référentiel réel repose sur linq2sql, la maquette n'utilise que la liste des objets linq2sql. Quand il s'agit des tables plusieurs à plusieurs, l'efficacité est plutôt faible.requête efficace pour plusieurs à plusieurs table

Voici le senario.

J'ai une table many2many qui est tablePersonInCommunity, stocke un CommunityID et un PersonID. Et aussi une table many2many TablePersionInContact, stocke un ContactID et un PersionID. Le ContactID pointe vers une entité de la table Contact. qui ont la structure suivante:

ContactID int, int ContactType (Business ou Home), chaîne Adresse1, chaîne Address2, ...

Maintenant, je veux obtenir un enregistrement ressemble à ceci: PersionID, BusinessContact, HomeContact

Quelle est la solution la plus efficace? mon test simple, y compris l'infomation de 100 personnes, a provoqué un temps mort lorsque je me suis mis à l'essai contre la maquette de la liste.

Merci d'avance!

Répondre

0

La réponse sera de s'assurer que vous avez la bonne stratégie d'indexation pour vos tables. Donc ... sur votre table plusieurs-à-plusieurs, avez un index sur (ContactID, PersonID), et un autre sur (PersonID, ContactID), de sorte que votre requête puisse gérer la recherche de personnes par contact ou contacts par personne.

Rob

+0

Merci. Mais j'exécute un test unitaire sur les maquettes basées sur des listes. Il n'y a aucun moyen d'ajouter un index. J'ai utilisé un autre algorithme dans mon code. Plus rapide qu'avant. Merci tout de même! – Roy

Questions connexes