From 88ac908fc7c1ff82736d798fafa91074ac55a3fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Chevaldonn=C3=A9?= Date: Sun, 20 Mar 2022 03:39:14 +0100 Subject: [PATCH] end of .NET5.0 update --- Exemples.sln | 33 +++---- ex_003_001_Main/ex_003_001_Main.csproj | 4 +- ..._013_001_FormattingParsingNumEtBool.csproj | 4 +- .../ex_023_001_IEnumerator_ex1.csproj | 4 +- .../Solution/Applications/Program.cs | 2 +- .../Applications/ex_036_001_Reflection.csproj | 4 +- .../ex_036_001_ChatChienOiseau.csproj | 4 +- .../MammifereDll/ex_036_001_Mammifere.csproj | 4 +- .../Album.cs | 41 --------- .../AlbumDBEntities.cs | 66 -------------- .../DbContextInitializer.cs | 85 ------------------ .../Morceau.cs | 39 --------- .../Program.cs | 86 ------------------- ...042_009_EF_CF_One_to_Many_FluentAPI.csproj | 21 ----- .../AlbumArtisteDBEntities.cs | 2 +- .../ex_050_010_Threading_en_UWP.csproj | 2 +- ex_051_003_gestion_exceptions/Program.cs | 22 +++-- .../ex_041_001_ConnectionStrings.csproj | 8 +- .../ex_041_004_ConsoleTests_w_SQLite.csproj | 8 +- .../ex_041_004_TestingInMemory/ReadMe.md | 6 +- .../ex_041_004_TestingInMemory.csproj | 14 ++- .../ex_041_004_UnitTests_w_InMemory.csproj | 16 ++-- ..._041_004_UnitTests_w_SQLiteInMemory.csproj | 16 ++-- .../ex_042_012_OneToOne_conventions.csproj | 6 -- 24 files changed, 81 insertions(+), 416 deletions(-) delete mode 100644 ex_042_009_EF_CF_One_to_Many_FluentAPI/Album.cs delete mode 100644 ex_042_009_EF_CF_One_to_Many_FluentAPI/AlbumDBEntities.cs delete mode 100644 ex_042_009_EF_CF_One_to_Many_FluentAPI/DbContextInitializer.cs delete mode 100644 ex_042_009_EF_CF_One_to_Many_FluentAPI/Morceau.cs delete mode 100644 ex_042_009_EF_CF_One_to_Many_FluentAPI/Program.cs delete mode 100644 ex_042_009_EF_CF_One_to_Many_FluentAPI/ex_042_009_EF_CF_One_to_Many_FluentAPI.csproj diff --git a/Exemples.sln b/Exemples.sln index 9851cd0..fecc670 100644 --- a/Exemples.sln +++ b/Exemples.sln @@ -412,8 +412,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_039_002_LINQ_to_XML", "e EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_040_001_LINQ_to_Json", "ex_040_001_LINQ_to_Json\ex_040_001_LINQ_to_Json.csproj", "{B506ECD8-853D-4E69-8F0A-AFCDB7FEABF3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_009_EF_CF_One_to_Many_FluentAPI", "ex_042_009_EF_CF_One_to_Many_FluentAPI\ex_042_009_EF_CF_One_to_Many_FluentAPI.csproj", "{2C53F069-6E87-4A36-8915-E0219EBA8BA7}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_010_EF_CF_Many_to_Many", "ex_042_010_EF_CF_Many_to_Many\ex_042_010_EF_CF_Many_to_Many.csproj", "{C6EF99F3-959D-4096-8ABE-140596DD14BD}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ex_042_012_EF_CF_Dictionary", "ex_042_012_EF_CF_Dictionary\ex_042_012_EF_CF_Dictionary.csproj", "{D9BE7F40-ADCE-415B-AF36-8D9B40B6DB7F}" @@ -3487,26 +3485,6 @@ Global {B506ECD8-853D-4E69-8F0A-AFCDB7FEABF3}.Release|x64.Build.0 = Release|Any CPU {B506ECD8-853D-4E69-8F0A-AFCDB7FEABF3}.Release|x86.ActiveCfg = Release|Any CPU {B506ECD8-853D-4E69-8F0A-AFCDB7FEABF3}.Release|x86.Build.0 = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|ARM.ActiveCfg = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|ARM.Build.0 = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|ARM64.Build.0 = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|x64.ActiveCfg = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|x64.Build.0 = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|x86.ActiveCfg = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Debug|x86.Build.0 = Debug|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|Any CPU.Build.0 = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|ARM.ActiveCfg = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|ARM.Build.0 = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|ARM64.ActiveCfg = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|ARM64.Build.0 = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|x64.ActiveCfg = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|x64.Build.0 = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|x86.ActiveCfg = Release|Any CPU - {2C53F069-6E87-4A36-8915-E0219EBA8BA7}.Release|x86.Build.0 = Release|Any CPU {C6EF99F3-959D-4096-8ABE-140596DD14BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C6EF99F3-959D-4096-8ABE-140596DD14BD}.Debug|Any CPU.Build.0 = Debug|Any CPU {C6EF99F3-959D-4096-8ABE-140596DD14BD}.Debug|ARM.ActiveCfg = Debug|Any CPU @@ -4329,24 +4307,34 @@ Global {A14CDD6E-3E6E-4E7A-9277-3F00C0F658FD}.Release|x86.Build.0 = Release|Any CPU {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|Any CPU.ActiveCfg = Debug|x86 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|Any CPU.Build.0 = Debug|x86 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|Any CPU.Deploy.0 = Debug|x86 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|ARM.ActiveCfg = Debug|ARM {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|ARM.Build.0 = Debug|ARM + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|ARM.Deploy.0 = Debug|ARM {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|ARM64.ActiveCfg = Debug|ARM64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|ARM64.Build.0 = Debug|ARM64 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|ARM64.Deploy.0 = Debug|ARM64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|x64.ActiveCfg = Debug|x64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|x64.Build.0 = Debug|x64 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|x64.Deploy.0 = Debug|x64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|x86.ActiveCfg = Debug|x86 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|x86.Build.0 = Debug|x86 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Debug|x86.Deploy.0 = Debug|x86 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|Any CPU.ActiveCfg = Release|x86 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|Any CPU.Build.0 = Release|x86 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|Any CPU.Deploy.0 = Release|x86 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|ARM.ActiveCfg = Release|ARM {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|ARM.Build.0 = Release|ARM + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|ARM.Deploy.0 = Release|ARM {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|ARM64.ActiveCfg = Release|ARM64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|ARM64.Build.0 = Release|ARM64 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|ARM64.Deploy.0 = Release|ARM64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|x64.ActiveCfg = Release|x64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|x64.Build.0 = Release|x64 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|x64.Deploy.0 = Release|x64 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|x86.ActiveCfg = Release|x86 {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|x86.Build.0 = Release|x86 + {0D922BCD-7C0F-43FF-A015-F547716B8284}.Release|x86.Deploy.0 = Release|x86 {097B0926-6663-4B7E-BBBE-DAA7EE278C7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {097B0926-6663-4B7E-BBBE-DAA7EE278C7C}.Debug|Any CPU.Build.0 = Debug|Any CPU {097B0926-6663-4B7E-BBBE-DAA7EE278C7C}.Debug|ARM.ActiveCfg = Debug|Any CPU @@ -4982,7 +4970,6 @@ Global {CF1AE501-3518-45CC-94AA-D6DE047EA022} = {13CDB6B1-9B1D-43A9-9E9E-08989D55ACA5} {26400B99-2FB6-4B5F-BE2B-D15124F2B51D} = {13CDB6B1-9B1D-43A9-9E9E-08989D55ACA5} {B506ECD8-853D-4E69-8F0A-AFCDB7FEABF3} = {3BD95300-E2F6-4CA6-B4CC-5D19DF5C6AC0} - {2C53F069-6E87-4A36-8915-E0219EBA8BA7} = {593200F9-6D14-43BC-9289-8BB75FAC6552} {C6EF99F3-959D-4096-8ABE-140596DD14BD} = {593200F9-6D14-43BC-9289-8BB75FAC6552} {D9BE7F40-ADCE-415B-AF36-8D9B40B6DB7F} = {593200F9-6D14-43BC-9289-8BB75FAC6552} {504AB98B-3C2D-493B-BA70-6D67734732D5} = {663523E4-3B60-4534-876F-8BD77110E6D8} diff --git a/ex_003_001_Main/ex_003_001_Main.csproj b/ex_003_001_Main/ex_003_001_Main.csproj index 5b0af13..ca4c50e 100644 --- a/ex_003_001_Main/ex_003_001_Main.csproj +++ b/ex_003_001_Main/ex_003_001_Main.csproj @@ -1,9 +1,9 @@ net5.0 - ex_005.0.7_Main + ex_003_001_Main Exe - ex_005.0.7_Main + ex_003_001_Main 5.0.7 false false diff --git a/ex_013_001_FormattingParsingNumEtBool/ex_013_001_FormattingParsingNumEtBool.csproj b/ex_013_001_FormattingParsingNumEtBool/ex_013_001_FormattingParsingNumEtBool.csproj index 8e69ab3..8bd418d 100644 --- a/ex_013_001_FormattingParsingNumEtBool/ex_013_001_FormattingParsingNumEtBool.csproj +++ b/ex_013_001_FormattingParsingNumEtBool/ex_013_001_FormattingParsingNumEtBool.csproj @@ -1,9 +1,9 @@ net5.0 - ex_015.0.7_FormattingParsingNumEtBool + ex_013_001_FormattingParsingNumEtBool Exe - ex_015.0.7_FormattingParsingNumEtBool + ex_013_001_FormattingParsingNumEtBool 5.0.7 false false diff --git a/ex_023_001_IEnumerator_ex1/ex_023_001_IEnumerator_ex1.csproj b/ex_023_001_IEnumerator_ex1/ex_023_001_IEnumerator_ex1.csproj index d71d35b..1129d84 100644 --- a/ex_023_001_IEnumerator_ex1/ex_023_001_IEnumerator_ex1.csproj +++ b/ex_023_001_IEnumerator_ex1/ex_023_001_IEnumerator_ex1.csproj @@ -1,9 +1,9 @@ net5.0 - ex_025.0.7_IEnumerator_ex1 + ex_023_001_IEnumerator_ex1 Exe - ex_025.0.7_IEnumerator_ex1 + ex_023_001_IEnumerator_ex1 5.0.7 false false diff --git a/ex_036_001_Reflection/Solution/Applications/Program.cs b/ex_036_001_Reflection/Solution/Applications/Program.cs index de4845d..e6526d0 100644 --- a/ex_036_001_Reflection/Solution/Applications/Program.cs +++ b/ex_036_001_Reflection/Solution/Applications/Program.cs @@ -28,7 +28,7 @@ namespace Reflection //permet d'accéder au dossier courant (ici l'endroit où se trouve l'exécutable) WriteLine(System.IO.Directory.GetCurrentDirectory()); - DirectoryInfo folder = new DirectoryInfo(Directory.GetCurrentDirectory().ToString()+"..\\..\\..\\plugin\\netcoreapp3.0\\"); + DirectoryInfo folder = new DirectoryInfo(Directory.GetCurrentDirectory().ToString()+"..\\..\\..\\..\\plugin\\net5.0\\"); FileInfo[] files = folder.GetFiles(); foreach (FileInfo file in files.Where(f => f.Extension.Equals(".dll"))) diff --git a/ex_036_001_Reflection/Solution/Applications/ex_036_001_Reflection.csproj b/ex_036_001_Reflection/Solution/Applications/ex_036_001_Reflection.csproj index da110c7..20a2d3b 100644 --- a/ex_036_001_Reflection/Solution/Applications/ex_036_001_Reflection.csproj +++ b/ex_036_001_Reflection/Solution/Applications/ex_036_001_Reflection.csproj @@ -23,10 +23,10 @@ - ..\..\bin\net5.0 + ..\..\bin\debug - ..\..\bin\net5.0 + ..\..\bin\release diff --git a/ex_036_001_Reflection/Solution/ChatChienOiseauDll/ex_036_001_ChatChienOiseau.csproj b/ex_036_001_Reflection/Solution/ChatChienOiseauDll/ex_036_001_ChatChienOiseau.csproj index 6ef57c8..b90ee06 100644 --- a/ex_036_001_Reflection/Solution/ChatChienOiseauDll/ex_036_001_ChatChienOiseau.csproj +++ b/ex_036_001_Reflection/Solution/ChatChienOiseauDll/ex_036_001_ChatChienOiseau.csproj @@ -23,10 +23,10 @@ - ..\..\plugin\net5.0 + ..\..\plugin - ..\..\plugin\net5.0 + ..\..\plugin diff --git a/ex_036_001_Reflection/Solution/MammifereDll/ex_036_001_Mammifere.csproj b/ex_036_001_Reflection/Solution/MammifereDll/ex_036_001_Mammifere.csproj index 397bb08..7dc0551 100644 --- a/ex_036_001_Reflection/Solution/MammifereDll/ex_036_001_Mammifere.csproj +++ b/ex_036_001_Reflection/Solution/MammifereDll/ex_036_001_Mammifere.csproj @@ -23,9 +23,9 @@ - ..\..\bin\net5.0 + ..\..\bin\debug - ..\..\bin\net5.0 + ..\..\bin\release diff --git a/ex_042_009_EF_CF_One_to_Many_FluentAPI/Album.cs b/ex_042_009_EF_CF_One_to_Many_FluentAPI/Album.cs deleted file mode 100644 index 5467cc6..0000000 --- a/ex_042_009_EF_CF_One_to_Many_FluentAPI/Album.cs +++ /dev/null @@ -1,41 +0,0 @@ -// ======================================================================== -// -// Copyright (C) 2016-2017 MARC CHEVALDONNE -// marc.chevaldonne.free.fr -// -// Module : Album.cs -// Author : Marc Chevaldonné -// Creation date : 2016-10-19 -// -// ======================================================================== - - -using System; -using System.Collections.Generic; - -namespace ex_042_009_EF_CF_One_to_Many_FluentAPI -{ - /// - /// Album est une classe POCO, i.e. Plain Old CLR Object. - /// Elle a une relation 1-many avec la classe Morceau via la propriété Morceaux. - /// - public class Album - { - public Guid UniqueId - { - get; set; - } - - public string Titre - { - get; set; - } - - public DateTime DateDeSortie - { - get; set; - } - - public virtual ICollection Morceaux { get; set; } = new List(); - } -} diff --git a/ex_042_009_EF_CF_One_to_Many_FluentAPI/AlbumDBEntities.cs b/ex_042_009_EF_CF_One_to_Many_FluentAPI/AlbumDBEntities.cs deleted file mode 100644 index 62863b4..0000000 --- a/ex_042_009_EF_CF_One_to_Many_FluentAPI/AlbumDBEntities.cs +++ /dev/null @@ -1,66 +0,0 @@ -// ======================================================================== -// -// Copyright (C) 2016-2017 MARC CHEVALDONNE -// marc.chevaldonne.free.fr -// -// Module : AlbumDBEntities.cs -// Author : Marc Chevaldonné -// Creation date : 2016-10-20 -// -// ======================================================================== - - -using Microsoft.EntityFrameworkCore; -using System; - -namespace ex_042_009_EF_CF_One_to_Many_FluentAPI -{ - /// - /// La classe qui dérive de DbContext est celle qui permettra de faire les opérations CRUD sur le modèle. - /// Cette classe contient deux DbSet pour permettre de réaliser des opérations CRUD sur les types T, ici Album et Morceau. - /// - public class AlbumDBEntities : DbContext - { - public virtual DbSet Albums { get; set; } - public virtual DbSet Morceaux { get; set; } - - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - { - optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=ex_042_009_EF_CF_One_to_Many_FluentAPI.Albums.mdf;Trusted_Connection=True;"); - } - - /// - /// méthode appelée lors de la création du modèle. - /// - /// - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - //création de la table TableNounours - modelBuilder.Entity().ToTable("Albums"); //nom de la table - modelBuilder.Entity().HasKey(a => a.UniqueId); //définition de la clé primaire - modelBuilder.Entity().Property(a => a.UniqueId) - .ValueGeneratedOnAdd(); //définition du mode de génération de la clé : génération à l'insertion - - //création de la table "Carnets" - modelBuilder.Entity().ToTable("Morceaux"); // nom de la table - modelBuilder.Entity().HasKey(m => m.UniqueId); //définition de la clé primaire - modelBuilder.Entity().Property(m => m.UniqueId) - .ValueGeneratedOnAdd(); // définition du mode de génération de la clé : pas de génération automatique - - - //on crée une propriété fantôme (shadow property) pour l'entity Morceau qu'on utilisera comme clé étrangère (foreign key) - // En effet, j'ai pris le cas où nous décidons d'utiliser une classe existante pour laquelle aucune clé étrangère n'a été prévue. - // Il me semblait donc logique qu'on cherche à l'utiliser sans qu'elle soit dans le modèle - modelBuilder.Entity().Property("AlbumId"); - - //on précise qu'il y a une relation entre Album et Morceau - modelBuilder.Entity().HasMany(a => a.Morceaux) // on dit que l'Album a plusieurs morceaux - .WithOne(m => m.Album) // et que chaque morceau a un album - .HasForeignKey("AlbumId"); //on utilise la clé étrangère fantôme créée précédemment - //Si vous regardez la table obtenue, vous pouvez voir qu'Entity Framework a automatiquement généré une clé étrangère. - - - base.OnModelCreating(modelBuilder); - } - } -} diff --git a/ex_042_009_EF_CF_One_to_Many_FluentAPI/DbContextInitializer.cs b/ex_042_009_EF_CF_One_to_Many_FluentAPI/DbContextInitializer.cs deleted file mode 100644 index 5848087..0000000 --- a/ex_042_009_EF_CF_One_to_Many_FluentAPI/DbContextInitializer.cs +++ /dev/null @@ -1,85 +0,0 @@ -// ======================================================================== -// -// Copyright (C) 2016-2017 MARC CHEVALDONNE -// marc.chevaldonne.free.fr -// -// Module : DbContextInitializer.cs -// Author : Marc Chevaldonné -// Creation date : 2016-10-19 -// -// ======================================================================== - -using Microsoft.EntityFrameworkCore; -using System; - -namespace ex_042_009_EF_CF_One_to_Many_FluentAPI -{ - /// - /// initialiseur de stratégies... - /// - public static class DbContextInitializer - { - /// - /// remplissage de la base avec des données stubbées. - /// - /// base à remplir - public static void Seed(AlbumDBEntities context) - { - SetInitializer(context, InitializationStrategies.DropCreateDatabaseAlways); - - Album kindofblue = new Album { Titre = "Kind of Blue", DateDeSortie = new DateTime(1959, 8, 17) }; - Morceau[] kindofblueMorceaux = { new Morceau { Album = kindofblue, Titre = "So What" }, - new Morceau { Album = kindofblue, Titre = "Freddie Freeloader" }, - new Morceau { Album = kindofblue, Titre = "Blue in Green" }, - new Morceau { Album = kindofblue, Titre = "All Blues" }, - new Morceau { Album = kindofblue, Titre = "Flamenco Sketches" } }; - foreach (var m in kindofblueMorceaux) kindofblue.Morceaux.Add(m); - - Album dialogue = new Album { Titre = "Dialogue", DateDeSortie = new DateTime(1965, 9, 1) }; - Morceau[] dialogueMorceaux = { new Morceau { Album = dialogue, Titre = "Catta" }, - new Morceau { Album = dialogue, Titre = "Idle While" }, - new Morceau { Album = dialogue, Titre = "Les Noirs Marchant" }, - new Morceau { Album = dialogue, Titre = "Dialogue" }, - new Morceau { Album = dialogue, Titre = "Ghetto Lights" }, - new Morceau { Album = dialogue, Titre = "Jasper" } }; - foreach (var m in dialogueMorceaux) dialogue.Morceaux.Add(m); - - context.Albums.AddRange(new Album[] { kindofblue, dialogue }); - context.Morceaux.AddRange(kindofblueMorceaux); - context.Morceaux.AddRange(dialogueMorceaux); - - context.SaveChanges(); - } - - /// - /// les différentes stratégies de création de la base - /// - public enum InitializationStrategies - { - CreateDatabaseIfNotExists, - DropCreateDatabaseIfModelChanges, - DropCreateDatabaseAlways - } - public static void SetInitializer(DbContext context, InitializationStrategies strategy) - { - switch (strategy) - { - //par défaut : crée la base seulement si elle n'existe pas - default: - case InitializationStrategies.CreateDatabaseIfNotExists: - context.Database.EnsureCreated(); - break; - - //recrée la base même si elle existe déjà - case InitializationStrategies.DropCreateDatabaseAlways: - context.Database.EnsureDeleted(); - context.Database.EnsureCreated(); - break; - - //recrée la base seulement si le modèle change : impossible aujourd'hui en Entity Framework Core... - case InitializationStrategies.DropCreateDatabaseIfModelChanges: - throw new NotImplementedException("Le mode DropCreateDatabaseIfModelChanges ne peut pas encore exister sous Entity Framework Core"); - } - } - } -} diff --git a/ex_042_009_EF_CF_One_to_Many_FluentAPI/Morceau.cs b/ex_042_009_EF_CF_One_to_Many_FluentAPI/Morceau.cs deleted file mode 100644 index 661e279..0000000 --- a/ex_042_009_EF_CF_One_to_Many_FluentAPI/Morceau.cs +++ /dev/null @@ -1,39 +0,0 @@ -// ======================================================================== -// -// Copyright (C) 2016-2017 MARC CHEVALDONNE -// marc.chevaldonne.free.fr -// -// Module : Morceau.cs -// Author : Marc Chevaldonné -// Creation date : 2016-10-19 -// -// ======================================================================== - -using System; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace ex_042_009_EF_CF_One_to_Many_FluentAPI -{ - /// - /// Morceau est une classe POCO, i.e. Plain Old CLR Object. - /// Elle a une relation 1-many avec la classe Morceau via la propriété Album. - /// - public class Morceau - { - public Guid UniqueId - { - get; set; - } - - public string Titre - { - get; set; - } - - public virtual Album Album - { - get; set; - } - } -} diff --git a/ex_042_009_EF_CF_One_to_Many_FluentAPI/Program.cs b/ex_042_009_EF_CF_One_to_Many_FluentAPI/Program.cs deleted file mode 100644 index de9b0f9..0000000 --- a/ex_042_009_EF_CF_One_to_Many_FluentAPI/Program.cs +++ /dev/null @@ -1,86 +0,0 @@ -// ======================================================================== -// -// Copyright (C) 2016-2017 MARC CHEVALDONNE -// marc.chevaldonne.free.fr -// -// Module : Program.cs -// Author : Marc Chevaldonné -// Creation date : 2016-10-19 -// -// ======================================================================== - -using System; -using static System.Console; - -namespace ex_042_009_EF_CF_One_to_Many_FluentAPI -{ - class Program - { - /// - /// Cet exemple montre comment construire une relation 1-many dans la base de données en utilisant les conventions de nommage Entity Framework. - /// 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 Albums et les Morceaux. - /// Constatez que les identifiants sont bien les mêmes à cause de la relation 1-many. - /// - /// Si vous ouvrez la base de données (via l'explorateur d'objets SQL Server), vous pourrez constater que la table Morceaux - /// contient une colonne Album_UniqueId qui permet d'assurer la relation 1-many. - /// - /// - static void Main(string[] args) - { - OutputEncoding = System.Text.Encoding.UTF8; - - try - { - //création du DbContext et injection de la dépendance à MyStubDataInitializationStrategy - using (AlbumDBEntities db = new AlbumDBEntities()) - { - //choix de la stratégie et remplissage avec des données stubbées - DbContextInitializer.Seed(db); - - WriteLine("Albums : "); - foreach (var a in db.Albums) - { - WriteLine($"\t{a.UniqueId}: {a.Titre} (sorti le : {a.DateDeSortie.ToString("d")})"); - foreach (var m in a.Morceaux) - { - WriteLine($"\t\t{m.Titre}"); - } - } - - WriteLine(); - - WriteLine("Morceaux :"); - foreach (var m in db.Morceaux) - { - WriteLine($"\t{m.UniqueId}: {m.Titre} (album : {m.Album.Titre})"); - } - - } - } - 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_009_EF_CF_One_to_Many_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(); - } - } -} diff --git a/ex_042_009_EF_CF_One_to_Many_FluentAPI/ex_042_009_EF_CF_One_to_Many_FluentAPI.csproj b/ex_042_009_EF_CF_One_to_Many_FluentAPI/ex_042_009_EF_CF_One_to_Many_FluentAPI.csproj deleted file mode 100644 index ddc3bd6..0000000 --- a/ex_042_009_EF_CF_One_to_Many_FluentAPI/ex_042_009_EF_CF_One_to_Many_FluentAPI.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - net5.0 - ex_042_009_EF_CF_One_to_Many_FluentAPI - Exe - ex_042_009_EF_CF_One_to_Many_FluentAPI - 5.0.7 - false - false - false - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - diff --git a/ex_042_011_EF_CF_Many_to_Many_FluentAPI/AlbumArtisteDBEntities.cs b/ex_042_011_EF_CF_Many_to_Many_FluentAPI/AlbumArtisteDBEntities.cs index 0a39a52..b071e7b 100644 --- a/ex_042_011_EF_CF_Many_to_Many_FluentAPI/AlbumArtisteDBEntities.cs +++ b/ex_042_011_EF_CF_Many_to_Many_FluentAPI/AlbumArtisteDBEntities.cs @@ -25,7 +25,7 @@ namespace ex_042_011_EF_CF_Many_to_Many_FluentAPI protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=ex_042_010_EF_CF_Many_to_Many.mdf;Trusted_Connection=True;"); + optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=ex_042_011_EF_CF_Many_to_Many_FluentAPI.mdf;Trusted_Connection=True;"); } protected override void OnModelCreating(ModelBuilder modelBuilder) diff --git a/ex_050_010_Threading_en_UWP/ex_050_010_Threading_en_UWP.csproj b/ex_050_010_Threading_en_UWP/ex_050_010_Threading_en_UWP.csproj index 340549d..4392da0 100644 --- a/ex_050_010_Threading_en_UWP/ex_050_010_Threading_en_UWP.csproj +++ b/ex_050_010_Threading_en_UWP/ex_050_010_Threading_en_UWP.csproj @@ -137,7 +137,7 @@ - + diff --git a/ex_051_003_gestion_exceptions/Program.cs b/ex_051_003_gestion_exceptions/Program.cs index c23090d..33abef0 100644 --- a/ex_051_003_gestion_exceptions/Program.cs +++ b/ex_051_003_gestion_exceptions/Program.cs @@ -20,17 +20,21 @@ namespace ex_051_003_gestion_exceptions } //l'exception est wrappée dans une AggregateException //(l'intérêt est plus visible dans le cas de la programmation en parallèle) - catch (AggregateException aggrEx) + catch(DivideByZeroException exc) { - if (aggrEx.InnerException is DivideByZeroException) - { - Console.WriteLine("division par zéro"); - } - else - { - throw; - } + } + //catch (AggregateException aggrEx) + //{ + // if (aggrEx.InnerException is DivideByZeroException) + // { + // Console.WriteLine("division par zéro"); + // } + // else + // { + // throw; + // } + //} } } } diff --git a/p08_BDD_EntityFramework/ex_041_001_ConnectionStrings/ex_041_001_ConnectionStrings.csproj b/p08_BDD_EntityFramework/ex_041_001_ConnectionStrings/ex_041_001_ConnectionStrings.csproj index 032d7f8..1307a1f 100644 --- a/p08_BDD_EntityFramework/ex_041_001_ConnectionStrings/ex_041_001_ConnectionStrings.csproj +++ b/p08_BDD_EntityFramework/ex_041_001_ConnectionStrings/ex_041_001_ConnectionStrings.csproj @@ -6,9 +6,9 @@ $(MSBuildProjectDirectory) - - - - + + + + diff --git a/p08_BDD_EntityFramework/ex_041_004_ConsoleTests_w_SQLite/ex_041_004_ConsoleTests_w_SQLite.csproj b/p08_BDD_EntityFramework/ex_041_004_ConsoleTests_w_SQLite/ex_041_004_ConsoleTests_w_SQLite.csproj index b00b8f6..795913b 100644 --- a/p08_BDD_EntityFramework/ex_041_004_ConsoleTests_w_SQLite/ex_041_004_ConsoleTests_w_SQLite.csproj +++ b/p08_BDD_EntityFramework/ex_041_004_ConsoleTests_w_SQLite/ex_041_004_ConsoleTests_w_SQLite.csproj @@ -1,4 +1,4 @@ - + Exe @@ -7,12 +7,12 @@ - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ReadMe.md b/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ReadMe.md index 42d8f2a..9562eb6 100644 --- a/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ReadMe.md +++ b/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ReadMe.md @@ -241,13 +241,13 @@ cd .\p08_BDD_EntityFramework\ex_041_004_ConsoleTests_w_SQLite * ```dotnet tool install --global dotnet-ef --version 3.0.0``` si vous vous utiliser spécifiquement .NET Core 3.0. - * Migration : comme la classe dérivant de ```DbContext``` se trouve dans l'application Console, nous n'avons pas à préciser dans quel projet elle se trouve. + * Migration : comme la classe dérivant de ```DbContext``` se trouve dans l'application Console, nous n'avons pas à préciser dans quel projet elle se trouve. En revanche, il y a désormais deux contextes (celui d'origine ```NounoursContext``` et celui pour SQLite ```SQLiteNounoursContext```), il faut donc préciser le contexte avec ```--context``` : ``` -dotnet ef migrations add migration_ex_041_004 --project ../ex_041_004_TestingInMemory +dotnet ef migrations add migration_ex_041_004 --context SQLiteNounoursContext ``` * Création de la table : ``` -dotnet ef database update --project ../ex_041_004_TestingInMemory +dotnet ef database update --context SQLiteNounoursContext ``` * Génération et exécution Vous pouvez maintenant générer et exécuter l'exemple **ex_041_004_ConsoleTests_w_SQLite**. diff --git a/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ex_041_004_TestingInMemory.csproj b/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ex_041_004_TestingInMemory.csproj index 1201013..6ebc0ad 100644 --- a/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ex_041_004_TestingInMemory.csproj +++ b/p08_BDD_EntityFramework/ex_041_004_TestingInMemory/ex_041_004_TestingInMemory.csproj @@ -1,11 +1,17 @@ - netstandard2.0 + netstandard2.1 + + + + + + - - - + + + diff --git a/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_InMemory/ex_041_004_UnitTests_w_InMemory.csproj b/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_InMemory/ex_041_004_UnitTests_w_InMemory.csproj index 37b7349..9527a22 100644 --- a/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_InMemory/ex_041_004_UnitTests_w_InMemory.csproj +++ b/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_InMemory/ex_041_004_UnitTests_w_InMemory.csproj @@ -7,11 +7,17 @@ - - - - - + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_SQLiteInMemory/ex_041_004_UnitTests_w_SQLiteInMemory.csproj b/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_SQLiteInMemory/ex_041_004_UnitTests_w_SQLiteInMemory.csproj index 5404e91..0a10e72 100644 --- a/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_SQLiteInMemory/ex_041_004_UnitTests_w_SQLiteInMemory.csproj +++ b/p08_BDD_EntityFramework/ex_041_004_UnitTests_w_SQLiteInMemory/ex_041_004_UnitTests_w_SQLiteInMemory.csproj @@ -7,11 +7,17 @@ - - - - - + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/p08_BDD_EntityFramework/ex_042_012_OneToOne_conventions/ex_042_012_OneToOne_conventions.csproj b/p08_BDD_EntityFramework/ex_042_012_OneToOne_conventions/ex_042_012_OneToOne_conventions.csproj index 6fbd086..2eca21f 100644 --- a/p08_BDD_EntityFramework/ex_042_012_OneToOne_conventions/ex_042_012_OneToOne_conventions.csproj +++ b/p08_BDD_EntityFramework/ex_042_012_OneToOne_conventions/ex_042_012_OneToOne_conventions.csproj @@ -6,12 +6,6 @@ $(MSBuildProjectDirectory) - - - - - -