minor fixes and read me

EFCore3_Reforged
Marc CHEVALDONNE 6 years ago
parent 6b6a9531d2
commit ac4913d32a

@ -4,8 +4,7 @@ namespace ex_042_001_EF_CF_conventions
{ {
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

@ -41,7 +41,7 @@ Cet exemple est répété d'une manière très similaire en utilisant les autres
```csharp ```csharp
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
} }
``` ```
ici, on indique donc qu'il y aura une table de ```Nounours```. ici, on indique donc qu'il y aura une table de ```Nounours```.

@ -4,7 +4,7 @@ namespace ex_042_002_EF_CF_data_annotations
{ {
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

@ -41,7 +41,7 @@ Cet exemple est répété d'une manière très similaire en utilisant les autres
```csharp ```csharp
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
} }
``` ```
ici, on indique donc qu'il y aura une table de ```Nounours```. ici, on indique donc qu'il y aura une table de ```Nounours```.

@ -21,7 +21,7 @@ namespace ex_042_003_EF_CF_Fluent_API
/// </summary> /// </summary>
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

@ -80,7 +80,7 @@ public class Nounours
```csharp ```csharp
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
} }
``` ```
ici, on indique donc qu'il y aura une table de ```Nounours```. ici, on indique donc qu'il y aura une table de ```Nounours```.

@ -4,8 +4,8 @@ namespace ex_042_004_Keys_conventions
{ {
class DBEntities : DbContext class DBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
public virtual DbSet<Cylon> CylonsSet { get; set; } public DbSet<Cylon> CylonsSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

@ -4,8 +4,8 @@ namespace ex_042_005_Keys_data_annotations
{ {
class DBEntities : DbContext class DBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
public virtual DbSet<Cylon> CylonsSet { get; set; } public DbSet<Cylon> CylonsSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

@ -4,9 +4,9 @@ namespace ex_042_006_Keys_FluentAPI
{ {
class DBEntities : DbContext class DBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
public virtual DbSet<Cylon> CylonsSet { get; set; } public DbSet<Cylon> CylonsSet { get; set; }
public virtual DbSet<Ordinateur> Ordinateurs { get; set; } public DbSet<Ordinateur> Ordinateurs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

@ -66,9 +66,9 @@ namespace ex_042_006_Keys_FluentAPI
{ {
class DBEntities : DbContext class DBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
public virtual DbSet<Cylon> CylonsSet { get; set; } public DbSet<Cylon> CylonsSet { get; set; }
public virtual DbSet<Ordinateur> Ordinateurs { get; set; } public DbSet<Ordinateur> Ordinateurs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

@ -6,7 +6,7 @@ namespace ex_042_007_ValueGeneration
{ {
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

@ -4,7 +4,7 @@ namespace ex_042_008_DataSeeding_before_EF2_1
{ {
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

@ -4,7 +4,7 @@ namespace ex_042_009_DataSeeding
{ {
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

@ -4,7 +4,7 @@ namespace ex_042_010_SinglePropertyNavigation_conventions
{ {
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

@ -41,7 +41,7 @@ public Information Information
* Comme dans les exemples précédents, ```NounoursDBEntities``` dérive de ```DbContext```. * Comme dans les exemples précédents, ```NounoursDBEntities``` dérive de ```DbContext```.
* ```NounoursDBEntities``` déclare un seul ```DbSet``` de ```Nounours```. * ```NounoursDBEntities``` déclare un seul ```DbSet``` de ```Nounours```.
```csharp ```csharp
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
``` ```
* Dans cet exemple, ```NounoursDBEntities``` __NE__ déclare __PAS__ de ```DbSet```d'```Information``` (*toutefois, l'exemple fonctionerait de la même manière si c'était le cas*). * Dans cet exemple, ```NounoursDBEntities``` __NE__ déclare __PAS__ de ```DbSet```d'```Information``` (*toutefois, l'exemple fonctionerait de la même manière si c'était le cas*).
##### Quelques explications supplémentaires : ##### Quelques explications supplémentaires :

@ -4,7 +4,7 @@ namespace ex_042_011_SinglePropertyNavigation_FluentAPI
{ {
class NounoursDBEntities : DbContext class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {

@ -41,7 +41,7 @@ public Information Information
* Comme dans les exemples précédents, ```NounoursDBEntities``` dérive de ```DbContext```. * Comme dans les exemples précédents, ```NounoursDBEntities``` dérive de ```DbContext```.
* ```NounoursDBEntities``` déclare un seul ```DbSet``` de ```Nounours```. * ```NounoursDBEntities``` déclare un seul ```DbSet``` de ```Nounours```.
```csharp ```csharp
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
``` ```
* Dans cet exemple, ```NounoursDBEntities``` __NE__ déclare __PAS__ de ```DbSet```d'```Information``` (*toutefois, l'exemple fonctionerait de la même manière si c'était le cas*). * Dans cet exemple, ```NounoursDBEntities``` __NE__ déclare __PAS__ de ```DbSet```d'```Information``` (*toutefois, l'exemple fonctionerait de la même manière si c'était le cas*).
* La méthode ```OnModelCreating``` est réécrite et écrasera donc une partie des *conventions d'écriture* ou des *annotations de données*. Ici, par exemple, elle donne quelques indications sur la classe ```Nounours``` comme nous l'avons déjà vu dans les exemples précédents : * La méthode ```OnModelCreating``` est réécrite et écrasera donc une partie des *conventions d'écriture* ou des *annotations de données*. Ici, par exemple, elle donne quelques indications sur la classe ```Nounours``` comme nous l'avons déjà vu dans les exemples précédents :

@ -1,15 +1,4 @@
// ======================================================================== using System;
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : CarnetDeSante.cs
// Author : Marc Chevaldonné
// Creation date : 2016-10-18
//
// ========================================================================
using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
@ -19,7 +8,7 @@ namespace ex_042_012_OneToOne_conventions
/// CarnetDeSante est une classe POCO, i.e. Plain Old CLR Object /// CarnetDeSante est une classe POCO, i.e. Plain Old CLR Object
/// Elle a une relation 1-1 avec la classe Nounours via la propriété Owner. /// Elle a une relation 1-1 avec la classe Nounours via la propriété Owner.
/// Notez l'annotation ForeignKey("Nounours") sur la propriété UniqueId qui indique qu'il ne faut pas générer /// Notez l'annotation ForeignKey("Nounours") sur la propriété UniqueId qui indique qu'il ne faut pas générer
/// une clé primaire pour ces instances, mais utiliser celle du Owner associé /// une clé primaire pour ses instances, mais utiliser celle du Owner associé
/// </summary> /// </summary>
[Table("Carnets")] [Table("Carnets")]
public class CarnetDeSante public class CarnetDeSante
@ -35,7 +24,7 @@ namespace ex_042_012_OneToOne_conventions
get; set; get; set;
} }
public virtual Nounours Owner public Nounours Owner
{ {
get; set; get; set;
} }

@ -1,15 +1,4 @@
// ======================================================================== using System;
//
// Copyright (C) 2016-2017 MARC CHEVALDONNE
// marc.chevaldonne.free.fr
//
// Module : Nounours.cs
// Author : Marc Chevaldonné
// Creation date : 2016-10-18
//
// ========================================================================
using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
@ -30,7 +19,7 @@ namespace ex_042_012_OneToOne_conventions
get; set; get; set;
} }
public virtual CarnetDeSante Carnet { get; set; } public CarnetDeSante Carnet { get; set; }
[Required] [Required]
[MaxLength(256)] [MaxLength(256)]
@ -40,65 +29,19 @@ namespace ex_042_012_OneToOne_conventions
set; set;
} }
[Column("Naissance")] [Column("Naissance", TypeName="date")]
public DateTime DateDeNaissance public DateTime DateDeNaissance
{ {
get; get;
set; set;
} }
[NotMapped]
public int NbPoils public int NbPoils
{ {
get; get;
set; set;
} }
/// <summary>
/// returns a hash code in order to use this class in hash table
/// </summary>
/// <returns>hash code</returns>
public override int GetHashCode()
{
return Nom.GetHashCode();
}
/// <summary>
/// checks if the "right" object is equal to this Nounours or not
/// </summary>
/// <param name="right">the other object to be compared with this Nounours</param>
/// <returns>true if equals, false if not</returns>
public override bool Equals(object right)
{
//check null
if (object.ReferenceEquals(right, null))
{
return false;
}
if (object.ReferenceEquals(this, right))
{
return true;
}
if (this.GetType() != right.GetType())
{
return false;
}
return this.Equals(right as Nounours);
}
/// <summary>
/// checks if this Nounours is equal to the other Nounours
/// </summary>
/// <param name="other">the other Nounours to be compared with</param>
/// <returns>true if equals</returns>
public bool Equals(Nounours other)
{
return (this.Nom.Equals(other.Nom) && this.DateDeNaissance == other.DateDeNaissance);
}
public override string ToString() public override string ToString()
{ {
return $"{UniqueId}: {Nom} ({DateDeNaissance:dd/MM/yyyy}, {NbPoils} poils)"; return $"{UniqueId}: {Nom} ({DateDeNaissance:dd/MM/yyyy}, {NbPoils} poils)";

@ -19,8 +19,8 @@ namespace ex_042_012_OneToOne_conventions
/// </summary> /// </summary>
public class NounoursDBEntities : DbContext public class NounoursDBEntities : DbContext
{ {
public virtual DbSet<Nounours> NounoursSet { get; set; } public DbSet<Nounours> NounoursSet { get; set; }
public virtual DbSet<CarnetDeSante> Carnets { get; set; } public DbSet<CarnetDeSante> Carnets { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

@ -9,6 +9,7 @@
// //
// ======================================================================== // ========================================================================
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using System; using System;
using static System.Console; using static System.Console;
@ -55,19 +56,10 @@ namespace ex_042_012_OneToOne_conventions
{ {
WriteLine(exception.Message); WriteLine(exception.Message);
} }
catch (Exception) catch (SqliteException)
{ {
WriteLine("Votre base de données n'existe pas. C'est peut-être la première fois que vous exécutez cet exemple."); 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 de données, suivez les instructions données dans le fichier ReadMe.md associé à cet exemple.");
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_006_EF_CF_One_to_One)");
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(); ReadLine();

Loading…
Cancel
Save