Meilleur moyen d'accéder à une base de données SQL Server à l'aide de C # .Net
Je suis nouvelle .NET et avons entendu parler de plusieurs façons différentes de l'interrogation d'un Serveur SQL server databse comme ADO.NET et entity framework.
Quelqu'un peut-il me donner quelques conseils sur la meilleure voie à suivre pour de nouvelles applications?
Merci pour toute aide ou suggestion.
source d'informationauteur user483267
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de l'utilisation de EF avec la génération de code à partir de la base de données (pour une application réelle, vous voudrez probablement pour générer votre base de données à partir du code, à la place):
Vous verrez un fichier MyEntities.edmx ajouté à votre projet. Vous pouvez l'ouvrir en mode création pour voir un schéma de vos entités et des relations. Notez que chaque entité doit avoir une clé primaire - la meilleure façon de le faire est d'ajouter un ID auto-incrémentés à chaque table, une colonne GUID. De toute façon maintenant, vous pouvez interroger votre base de données comme ceci:
Entity Framework est le plus facile, et ses construit en.
Tout ce que vous avez à faire est important votre modèle, et puis il suffit de mettre à jour des classes simples, qui sont automatiquement mappés à votre base de données.
Son juste comme la mise à jour des objets classiques, mais à la fin vous appelez SaveChanges.
LINQ to SQL est assez facile de travailler avec. Vous pouvez faire glisser et déposer vos tables de base de données dans le concepteur et l'écriture assez simple requêtes en quelques minutes.
Qui aura pour traduire en SELECT * from Produits
Quelques autres de sélectionner des échantillons:
À mon avis, la meilleure solution est de créer une classe intermédiaire entre la db et de l'application (un certain type de données de la couche), un certain nombre de méthodes pour gérer les requêtes.
La Description ci-dessous de la base sur SQLite comme une analogie pour SQLServer (ADO connecteur)
Mentionné classe peut par singleton, et vous pouvez l'appeler instance où vous le souhaitez dans votre application pour SQLite il peut ressemble à ça:
Vous pouvez obtenir l'instance de cette façon:
Cette classe peut contenir plusieurs méthodes pour la manipulation de données par exemple:
mais aussi des transactions de gérer et de diagnostoc méthodes.
Alors maintenant, vous pouvez l'utiliser comme classe dans vous demande si vous avez d'autres db sources ou même db types, vous pouvez créer, à côté des données de la couche (par exemple pour Oracle et MSSQL, MySQL ...) qui ont chacune met en œuvre la même interface, par exemple:
et maintenant, vous avez une sorte de façade, vous pouvez remplacer au besoin dynamicly.
À partir de ce moment, en utilisant db dans la demande est concentrée dans un seul endroit, et c'est un pur plaisir pour le programmeur à utiliser - c'est ma suggestion.
NHibernate est le chemin à parcourir. Voir http://nhforge.org et http://sf.net/projects/nhibernate pour plus d'informations.
La principale différence entre Entity Framework et NHibernate est que Entity Framework est uniquement pour Microsoft SQL Serveur (Oracle est une sorte de prise en charge, mais le soutien n'est pas l'idéal). NHibernate prend en charge de nombreux de nombreux de nombreux bases de données.