You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
3.6 KiB
76 lines
3.6 KiB
// ========================================================================
|
|
//
|
|
// Copyright (C) 2016-2017 MARC CHEVALDONNE
|
|
// marc.chevaldonne.free.fr
|
|
//
|
|
// Module : Program.cs
|
|
// Author : Marc Chevaldonné
|
|
// Creation date : 2016-10-18
|
|
//
|
|
// ========================================================================
|
|
|
|
using System;
|
|
using static System.Console;
|
|
|
|
namespace ex_042_007_EF_CF_One_to_One_FluentAPI
|
|
{
|
|
public class Program
|
|
{
|
|
/// <summary>
|
|
/// Cet exemple montre comment construire une relation 1-1 dans la base de données en utilisant la Fluent API.
|
|
/// On préférera cette solution par exemple lorsque nous n'avons pas accès à la classe Model et que nous ne pouvons donc pas utiliser les conventions de nommage
|
|
/// comme dans l'exemple précédent.
|
|
///
|
|
/// on utilise les données stubbées de MyStubDataInitializationStrategy
|
|
/// On affiche les Nounours et les Carnets de santé.
|
|
/// Constatez que les identifiants sont bien les mêmes à cause de la relation 1-1.
|
|
/// </summary>
|
|
static void Main(string[] args)
|
|
{
|
|
OutputEncoding = System.Text.Encoding.UTF8;
|
|
|
|
try
|
|
{
|
|
using (NounoursDBEntities db = new NounoursDBEntities())
|
|
{
|
|
//choix de la stratégie et remplissage avec des données stubbées
|
|
DbContextInitializer.Seed(db);
|
|
|
|
WriteLine("nounours : ");
|
|
foreach (var n in db.NounoursSet)
|
|
{
|
|
WriteLine($"\t{n}, LastModified: {n.Carnet.LastModified.ToString("d")}");
|
|
}
|
|
|
|
WriteLine("carnets de santé : ");
|
|
foreach (var c in db.Carnets)
|
|
{
|
|
WriteLine($"\t{c}");
|
|
}
|
|
|
|
}
|
|
}
|
|
catch (NotImplementedException exception)
|
|
{
|
|
WriteLine(exception.Message);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
WriteLine("Votre base de données n'existe pas. C'est peut-être la première fois que vous exécutez cet exemple.");
|
|
WriteLine("Pour créer la base de données, suivez les instructions suivantes (que vous retrouvez en commentaires dans la classe Program) :");
|
|
WriteLine("Pour créer la base, ouvrez un invite de commandes et placez-vous dans le dossier de ce projet, ou bien,");
|
|
WriteLine("- dans Visual Studio ouvrez la Console du Gestionnaire de package (Outils -> Gestionnaire de package NuGet -> Console du Gestionnaire de package),");
|
|
WriteLine("- dans cette Console, vous devriez être dans le dossier de la solution, déplacez-vous dans celui du projet (ici : cd ex_042_007_EF_CF_One_to_One_FluentAPI)");
|
|
WriteLine("- tapez : dotnet restore (pour restaurer les packages .NET Core)");
|
|
WriteLine("- tapez : dotnet ef migrations add MyFirstMigration");
|
|
WriteLine(" note : vous pourrez détruire le dossier Migrations une fois la base créée");
|
|
WriteLine("- tapez : dotnet ef database update");
|
|
WriteLine(" Ceci génère la base de données en utilisant la migration, et en particulier votre classe DBContext et vos classes POCO.");
|
|
WriteLine("\nDans cet exemple, une base de données SQLServer est créée et en particulier la table Nounours.mdf");
|
|
}
|
|
|
|
ReadLine();
|
|
}
|
|
}
|
|
}
|