De classe C# à partir d'une table de base de données SQL
Suis tombé sur ceci:
http://www.eggheadcafe.com/articles/adonet_source_code_generator.asp
Et vous demandez-vous si c'est la bonne solution car je ne suis pas un grand fan de la création d'une classe pour chaque procédure stockée ou dois-je utiliser la Bibliothèque d'Entreprise pour ASP.net 2.0 projet.
OriginalL'auteur | 2008-10-20
Vous devez vous connecter pour publier un commentaire.
Vous ne devriez pas être en train de créer une classe pour chaque procédure stockée. Il y a un certain nombre d'approches que vous pouvez prendre pour la manipulation de votre base de données d'interactions. Vous devriez avoir un bon coup d'oeil les principaux cadres d'y être et de décider lequel vous convient le mieux. Le Château de Projet solution est grande, et s'appuie sur nHibernate (nHibernate). LINQ est une offre similaire par Mircrosoft (LINQ Projet). Ces deux solutions sont pleins frameworks ORM (Object Relational Mapping) et permettra de générer le SQL dynamique de persister des objets de la base de données. Chacune a ses propres particularités et vous aime à la structure de vos objets d'une façon particulière. Si vous ne voulez pas gérer SQL votre système utilise, je recommanderais certainement l'un de ces approches.
Je viens d'une base de données d'arrière-plan, et préfèrent un peu plus de contrôle sur mon SQL. En particulier, je tiens à avoir mes relations traitées par des procédures stockées. J'ai trouver ceci me permet de contrôler à la fois le SQL mieux pour l'optimisation, mais m'aide à gérer la base de données de sécurité dans l'un des plus conviviale. Pour tenir compte de cette approche, je vous recommande de quelque chose comme iBatis (iBatis). iBatis n'est pas un ORM, mais plutôt une simple SQL mappeur. L'inconvénient de ma démarche, c'est que vous avez besoin d'écrire beaucoup plus de code (SQL), mais je n'ai pas l'esprit de l'échange.
OriginalL'auteur Dr8k
Est-il une possibilité de mise à jour framework 3.5? si oui, jetez un oeil à LINQ to SQL et Entity Framework car cela permettra d'accomplir beaucoup de cela pour vous.
Si non, alors tant qu'il génère du code qui ne marche pas vous lier la 3e partie des bibliothèques ensuite, vous pouvez certainement l'utiliser. Sur mon lieu de travail, nous avons notre propre générateur de similaire à ceci et cela fonctionne bien, bien que nous allons bientôt passer à LINQ to SQL.
OriginalL'auteur alexmac
Il existe de nombreuses façons d'emballage une table de base de données dans une classe C#; vous voulez probablement pour enquêter sur quelques solutions de rechange avant de choisir entre l'un que vous avez lié à et Entity Framework.
Il y a un logiciel de modèle appelé "modèle d'enregistrement active", qui décrit exactement cette approche - une classe C# pour chaque table, avec de charger ou d'enregistrer des méthodes comme Client.GetById(), Client.Save(), et ainsi de suite.
Pour ASP.NET 2.0, découvrez la Château du Projet ActiveRecord mise en œuvre et un tiers de Visual Studio plugin outil appelé ActiveWriter qui vous permet de générer des wrappers de classe pour vos tables à l'aide d'un drag'n'drop interface.
OriginalL'auteur Dylan Beattie
Vous aurez besoin de déterminer à quel point vous avez besoin d'ensembles de données qui sont composées de vos tables, et si vous voulez SQL pour produire ces avec des procédures stockées ou si votre logique métier d'une couche de gérer ces. Comme Dr8k dit, nHibernate permettra de créer SQL pour vous, mais il y a une courbe d'apprentissage avec nHibernate. L'ORM va être en contrôle de la façon dont vous êtes l'obtention de données et en fonction de votre environnement et de la DBA conmfort niveau vous pouvez d'autres problèmes à surmonter.
Si vous plus à l'aise avec SQL, alors il est un autre outil appelé SubSonic qui permettra de créer des wrappers ala Active Record pour vous, tout en vous offrant la possibilité d'utiliser des procédures stockées. Il y a aussi un bel outil de requête avec une interface fluide que vous pouvez utiliser si vous n'êtes pas en mesure d'utiliser LINQ.
OriginalL'auteur David Robbins