minor fixes and read me

EFCore3_Reforged
Marc CHEVALDONNE 5 years ago
parent 6b6a9531d2
commit ac4913d32a

@ -4,8 +4,7 @@ namespace ex_042_001_EF_CF_conventions
{
class NounoursDBEntities : DbContext
{
public virtual DbSet<Nounours> NounoursSet { get; set; }
public DbSet<Nounours> NounoursSet { get; set; }
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
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```.

@ -4,7 +4,7 @@ namespace ex_042_002_EF_CF_data_annotations
{
class NounoursDBEntities : DbContext
{
public virtual DbSet<Nounours> NounoursSet { get; set; }
public DbSet<Nounours> NounoursSet { get; set; }
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
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```.

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

@ -80,7 +80,7 @@ public class Nounours
```csharp
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```.

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

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

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

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

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

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

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

@ -4,7 +4,7 @@ namespace ex_042_010_SinglePropertyNavigation_conventions
{
class NounoursDBEntities : DbContext
{
public virtual DbSet<Nounours> NounoursSet { get; set; }
public DbSet<Nounours> NounoursSet { get; set; }
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```.
* ```NounoursDBEntities``` déclare un seul ```DbSet``` de ```Nounours```.
```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*).
##### Quelques explications supplémentaires :

@ -4,7 +4,7 @@ namespace ex_042_011_SinglePropertyNavigation_FluentAPI
{
class NounoursDBEntities : DbContext
{
public virtual DbSet<Nounours> NounoursSet { get; set; }
public DbSet<Nounours> NounoursSet { get; set; }
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```.
* ```NounoursDBEntities``` déclare un seul ```DbSet``` de ```Nounours```.
```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*).
* 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 @@
// ========================================================================
//
// 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;
using System.ComponentModel.DataAnnotations;
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
/// 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
/// 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>
[Table("Carnets")]
public class CarnetDeSante
@ -35,7 +24,7 @@ namespace ex_042_012_OneToOne_conventions
get; set;
}
public virtual Nounours Owner
public Nounours Owner
{
get; set;
}

@ -1,15 +1,4 @@
// ========================================================================
//
// 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;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
@ -30,7 +19,7 @@ namespace ex_042_012_OneToOne_conventions
get; set;
}
public virtual CarnetDeSante Carnet { get; set; }
public CarnetDeSante Carnet { get; set; }
[Required]
[MaxLength(256)]
@ -40,65 +29,19 @@ namespace ex_042_012_OneToOne_conventions
set;
}
[Column("Naissance")]
[Column("Naissance", TypeName="date")]
public DateTime DateDeNaissance
{
get;
set;
}
[NotMapped]
public int NbPoils
{
get;
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()
{
return $"{UniqueId}: {Nom} ({DateDeNaissance:dd/MM/yyyy}, {NbPoils} poils)";

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

@ -9,6 +9,7 @@
//
// ========================================================================
using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using System;
using static System.Console;
@ -55,19 +56,10 @@ namespace ex_042_012_OneToOne_conventions
{
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("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_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");
WriteLine("Pour créer la base de données, suivez les instructions données dans le fichier ReadMe.md associé à cet exemple.");
}
ReadLine();

Loading…
Cancel
Save