D'accord, j'ai une question que je sais être très subjective (basée sur tous les messages que j'ai lus), mais j'ai besoin d'aide. En résumé, j'ai utilisé le modèle suivant pour l'accès aux données ces dernières années.
Base de données->Sprocs->XSD(Ensemble de données typé, glisser-déposer sproc en .net)-> Dans le projet DAL, créer des fonctions pour appeler les méthodes créées par XSD, charger toutes les données puis les mapper sur les objets métier du projet.
Les avantages de cela :
1) Facile de glisser-déposer pour créer des appels SQL
2) Les Sprocs sont presque indispensables en raison d'autres contraintes et faciles à ajouter
3) Le projet utilise ses propres objets métier qui correspondent à la solution et non à la base de données, je les mappe simplement en C#
4) Le mapping du code, facile à refactoriser
5) Qui n'aime pas que tout soit tapé et intellisensed
Inconvénients :
1) Lent à construire
2) Lent à extraire des données (l'adaptateur de table et les ensembles de données ont de mauvaises performances par rapport à un DataReader)
3) Buggé quand il s'agit de valeurs nulles. Et mon dieu, ce krap peut être buggé et cela gaspille beaucoup de temps.
Voilà ce que j'ai fait et en n'étant pas un idiot, j'ai réalisé qu'il devait y avoir de meilleures façons de faire. J'ai donc passé la dernière semaine à étudier NHiberabte, LINQ to SQL, Entity Framework, ou à revenir à tout faire avec du code avec des DataReaders et non typé.
DONC, la question est quel est un bon mappage de base de données (sprocs probablement vers des objets).
Mon avis sur les 3 que j'ai étudiés :
1) Linq to SQL - Eh bien, c'est uniquement du SQL et Microsoft a pratiquement dit que c'était une technologie obsolète, donc cela semble inutile.
2) Entity Framework - J'ai probablement besoin de plus d'exposition à celui-ci, mais il me semble que mapper ces choses à mes propres objets me ramènerait là où j'étais.
3) Nhibernate - Semblait prometteur, mais bon sang, je déteste écrire des fichiers XML et mes projets actuels ont entre 30 et 50 objets métier. De plus, je dois utiliser des sprocs dans divers domaines.
Toute suggestion ou un lien vraiment bon vers un tutoriel sur un bon ORM serait grandement apprécié. Désolé pour la longueur de cette question. Merci, Joe