Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette vidéo et cette procédure pas à pas fournissent une introduction au développement Database First à l’aide d’Entity Framework. La base de données First vous permet d’inverser l’ingénierie d’un modèle à partir d’une base de données existante. Le modèle est stocké dans un fichier EDMX (extension .edmx) et peut être consulté et modifié dans entity Framework Designer. Les classes avec lesquelles vous interagissez dans votre application sont générées automatiquement à partir du fichier EDMX.
Regardez la vidéo
Cette vidéo présente le développement Database First à l’aide d’Entity Framework. La base de données First vous permet d’inverser l’ingénierie d’un modèle à partir d’une base de données existante. Le modèle est stocké dans un fichier EDMX (extension .edmx) et peut être consulté et modifié dans entity Framework Designer. Les classes avec lesquelles vous interagissez dans votre application sont générées automatiquement à partir du fichier EDMX.
Présenté par : Rowan Miller
Conditions préalables
Vous devez avoir au moins Visual Studio 2010 ou Visual Studio 2012 installé pour effectuer cette procédure pas à pas.
Si vous utilisez Visual Studio 2010, vous devez également installer NuGet .
1. Créer une base de données existante
En règle générale, lorsque vous ciblez une base de données existante, elle sera déjà créée, mais pour cette procédure pas à pas, nous devons créer une base de données à accéder.
Le serveur de base de données installé avec Visual Studio est différent selon la version de Visual Studio que vous avez installée :
- Si vous utilisez Visual Studio 2010, vous allez créer une base de données SQL Express.
- Si vous utilisez Visual Studio 2012, vous allez créer une base de données LocalDB .
Allons-y et générons la base de données.
Ouvrez Visual Studio.
Affichage -> Explorateur de serveurs
Cliquez avec le bouton droit sur Connexions de données -> Ajouter une connexion...
Si vous n’avez pas connecté à une base de données à partir de l’Explorateur de serveurs avant de devoir sélectionner Microsoft SQL Server comme source de données
Connectez-vous à LocalDB ou SQL Express, selon celui que vous avez installé, puis entrez DatabaseFirst.Blogs comme nom de base de données.
Sélectionnez OK et vous serez invité à créer une base de données, sélectionnez Oui
La nouvelle base de données s’affiche désormais dans l’Explorateur de serveurs, cliquez dessus avec le bouton droit et sélectionnez Nouvelle requête.
Copiez le code SQL suivant dans la nouvelle requête, puis cliquez avec le bouton droit sur la requête, puis sélectionnez Exécuter
CREATE TABLE [dbo].[Blogs] (
[BlogId] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (200) NULL,
[Url] NVARCHAR (200) NULL,
CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);
CREATE TABLE [dbo].[Posts] (
[PostId] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (200) NULL,
[Content] NTEXT NULL,
[BlogId] INT NOT NULL,
CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);
2. Créer l’application
Pour simplifier les choses, nous allons créer une application console de base qui utilise la base de données First pour effectuer l’accès aux données :
- Ouvrez Visual Studio.
- Fichier -> Nouveau -> Projet...
- Sélectionner Windows dans le menu de gauche et l’application console
- Entrez DatabaseFirstSample comme nom
- Sélectionnez OK.
3. Modèle d’ingénieur inverse
Nous allons utiliser Entity Framework Designer, qui est inclus dans Visual Studio, pour créer notre modèle.
Projet -> Ajouter un nouvel élément...
Sélectionnez Données dans le menu de gauche, puis ADO.NET Modèle de données d’entité
Entrez BlogsModel comme nom, puis cliquez sur OK
Cette opération lance l’Assistant Modèle de données d’entité
Sélectionnez Générer à partir de la base de données , puis cliquez sur Suivant
Sélectionnez la connexion à la base de données que vous avez créée dans la première section, entrez BlogsContext comme nom de la chaîne de connexion, puis cliquez sur Suivant
Cochez la case en regard de « Tables » pour importer toutes les tables, puis cliquez sur « Terminer ».
Une fois le processus de rétro-ingénierie terminé, le nouveau modèle est ajouté à votre projet et ouvert pour être affiché dans Entity Framework Designer. Un fichier App.config a également été ajouté à votre projet avec les détails de connexion de la base de données.
Étapes supplémentaires dans Visual Studio 2010
Si vous travaillez dans Visual Studio 2010, vous devez suivre certaines étapes supplémentaires pour effectuer une mise à niveau vers la dernière version d’Entity Framework. La mise à niveau est importante, car elle vous donne accès à une surface d’API améliorée, qui est beaucoup plus facile à utiliser, ainsi que les derniers correctifs de bogues.
Tout d’abord, nous devons obtenir la dernière version d’Entity Framework à partir de NuGet.
- Projet–> Gérer les packages NuGet...Si vous n’avez pas l’option Gérer les packages NuGet... vous devez installer la dernière version de NuGet
- Sélectionnez l’onglet En ligne
- Sélectionner le package EntityFramework
- Cliquez sur Install.
Ensuite, nous devons échanger notre modèle pour générer du code qui utilise l’API DbContext, qui a été introduite dans les versions ultérieures d’Entity Framework.
Cliquez avec le bouton droit sur un emplacement vide de votre modèle dans le Concepteur EF, puis sélectionnez Ajouter un élément de génération de code...
Sélectionnez Modèles en ligne dans le menu de gauche et recherchez DbContext
Sélectionnez le générateur EF 5.x DbContext pour C#, entrez BlogsModel comme nom, puis cliquez sur Ajouter
4. Lecture et écriture de données
Maintenant que nous avons un modèle, il est temps de l’utiliser pour accéder à certaines données. Les classes que nous allons utiliser pour accéder aux données sont générées automatiquement pour vous en fonction du fichier EDMX.
Cette capture d’écran provient de Visual Studio 2012, si vous utilisez Visual Studio 2010, les fichiers BloggingModel.tt et BloggingModel.Context.tt seront directement sous votre projet plutôt que imbriqués sous le fichier EDMX.
Implémentez la méthode Main dans Program.cs, comme indiqué ci-dessous. Ce code crée une instance de notre contexte, puis l’utilise pour insérer un nouveau blog. Ensuite, il utilise une requête LINQ pour récupérer tous les blogs de la base de données classées par ordre alphabétique par Title.
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
// Create and save a new Blog
Console.Write("Enter a name for a new Blog: ");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
db.Blogs.Add(blog);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
Console.WriteLine(item.Name);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Vous pouvez maintenant exécuter l’application et la tester.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Gestion des modifications de base de données
Il est maintenant temps d’apporter des modifications à notre schéma de base de données, lorsque nous effectuons ces modifications, nous devons également mettre à jour notre modèle pour refléter ces modifications.
La première étape consiste à apporter des modifications au schéma de base de données. Nous allons ajouter une table Users au schéma.
- Cliquez avec le bouton droit sur la base de données DatabaseFirst.Blogs dans l’Explorateur de serveurs, puis sélectionnez Nouvelle requête
- Copiez le code SQL suivant dans la nouvelle requête, puis cliquez avec le bouton droit sur la requête, puis sélectionnez Exécuter
CREATE TABLE [dbo].[Users]
(
[Username] NVARCHAR(50) NOT NULL PRIMARY KEY,
[DisplayName] NVARCHAR(MAX) NULL
)
Maintenant que le schéma est mis à jour, il est temps de mettre à jour le modèle avec ces modifications.
Cliquez avec le bouton droit sur un emplacement vide de votre modèle dans le Concepteur EF, puis sélectionnez « Mettre à jour le modèle à partir de la base de données... », ce qui lance l’Assistant Mise à jour
Sous l’onglet Ajouter de l’Assistant Mise à jour, cochez la case en regard des tables, ce qui indique que nous voulons ajouter de nouvelles tables à partir du schéma. L’onglet Actualiser affiche les tables existantes dans le modèle qui seront vérifiées pour les modifications pendant la mise à jour. Les onglets Supprimer affichent les tables qui ont été supprimées du schéma et qui seront également supprimées du modèle dans le cadre de la mise à jour. Les informations de ces deux onglets sont automatiquement détectées et fournies à des fins d’information uniquement, vous ne pouvez pas modifier les paramètres.
Cliquez sur Terminer dans l’Assistant Mise à jour
Le modèle est maintenant mis à jour pour inclure une nouvelle entité Utilisateur qui est mappée à la table Users que nous avons ajoutée à la base de données.
Résumé
Dans cette procédure pas à pas, nous avons examiné le développement Database First, qui nous a permis de créer un modèle dans le Concepteur EF basé sur une base de données existante. Nous avons ensuite utilisé ce modèle pour lire et écrire des données à partir de la base de données. Enfin, nous avons mis à jour le modèle pour refléter les modifications apportées au schéma de base de données.