9
votes

Conception du code LINQ

Quelles sont vos suggestions pour la conception de code LINQ dans le projet? Surtout, je suis intéressant dans la conception de code de requêtes Linq grandes et complexes?

Par exemple, vous savez que vous devez écrire beaucoup d'énormes choses Linq, peut-être qu'une partie de votre code aura des pièces en double, peut-être pas, et vous avez besoin de:

  1. Faites le code facilement, signifie que si vous devez modifier quelque chose. - Vous changez une chose, pas beaucoup

  2. Faites le code facile à lire - signifie que si vous avez besoin de trouver quelque chose - vous faites facilement cela.

    Vous pouvez utiliser vos exemples, peut-être votre pratique. Peut-être des motifs que vous avez vu n'importe où - n'importe quoi.

    Dire Linq, je veux dire n'importe quel Linq, Linq à SQL, Linq aux objets, Linq à XML, etc.

    tnx


1 commentaires

N'oubliez pas de marquer votre réponse préférée. La réponse de Netside serait un bon candidat.


4 Réponses :


7
votes

Vous pouvez écrire des extensions pour vos objets;

code principal; xxx

extension; xxx


0 commentaires

3
votes

J'aime mettre de côté les grandes instructions sélectionnées qui sont utilisées plusieurs fois à l'aide de méthodes d'extension.

 ObjectCtx.SomeEntities.SelectEntityPM();


0 commentaires

2
votes

Un modèle utile pour cela crée une bibliothèque de prédicats réutilisable . Consultez cette page sur le LINQ PredicateBuilder pour plus d'informations.


0 commentaires

2
votes

Un VEW choses que je fais souvent:

1) Mise en page: Commencez toujours une requête à la ligne suivante. Exemple: Ne faites pas cela xxx

mais faites ceci: xxx

2) utilisez plusieurs clauses où vous pouvez. J'essaie de trouver le deuxième extrait de plus lisible que le premier: xxx

3) empêche les jointures si vous le pouvez. LINQ to SQL vous permet souvent de simplement "dot" sur toutes les relations parent-enfant sans utiliser les instructions de jointure

4), vous verrez souvent que de nombreuses questions se ressembler. Vous voudrez peut-être toujours filtrer certains enregistrements en fonction des droits d'un utilisateur. Vous pouvez extraire ce code dans une méthode: xxx


0 commentaires