Ajout de la base de données SQLite
This commit is contained in:
97
Webzine.EntitiesContext/WebzineDbContext.cs
Normal file
97
Webzine.EntitiesContext/WebzineDbContext.cs
Normal file
@@ -0,0 +1,97 @@
|
||||
// <copyright file="WebzineDbContext.cs" company="PlaceholderCompany">
|
||||
// Copyright (c) PlaceholderCompany. All rights reserved.
|
||||
// </copyright>
|
||||
|
||||
namespace Webzine.EntitiesContext
|
||||
{
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Webzine.Entity;
|
||||
|
||||
public class WebzineDbContext : DbContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="WebzineDbContext"/> class.
|
||||
/// </summary>
|
||||
/// <param name="options">Options.</param>
|
||||
public WebzineDbContext(DbContextOptions<WebzineDbContext> options)
|
||||
: base(options) { }
|
||||
|
||||
/// <summary>
|
||||
/// Gets Obtient les artistes de la base.
|
||||
/// </summary>
|
||||
public DbSet<Artiste> Artistes => this.Set<Artiste>();
|
||||
|
||||
/// <summary>
|
||||
/// Gets Obtient les styles de la base.
|
||||
/// </summary>
|
||||
public DbSet<Style> Styles => this.Set<Style>();
|
||||
|
||||
/// <summary>
|
||||
/// Gets obtient les titres de la base.
|
||||
/// </summary>
|
||||
public DbSet<Titre> Titres => this.Set<Titre>();
|
||||
|
||||
/// <summary>
|
||||
/// Gets obtient les commentaires de la base.
|
||||
/// </summary>
|
||||
public DbSet<Commentaire> Commentaires => this.Set<Commentaire>();
|
||||
|
||||
/// <inheritdoc/>
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
modelBuilder.Entity<Artiste>(entity =>
|
||||
{
|
||||
entity.HasKey(a => a.IdArtiste)
|
||||
.HasName("PK_Artiste");
|
||||
|
||||
entity.HasMany(a => a.Titres)
|
||||
.WithOne(t => t.Artiste)
|
||||
.HasForeignKey(t => t.IdArtiste)
|
||||
.OnDelete(DeleteBehavior.Restrict);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Style>(entity =>
|
||||
{
|
||||
entity.HasKey(s => s.IdStyle)
|
||||
.HasName("PK_Style");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Commentaire>(entity =>
|
||||
{
|
||||
entity.HasKey(c => c.IdCommentaire)
|
||||
.HasName("PK_Commentaire");
|
||||
|
||||
entity.HasOne(c => c.Titre)
|
||||
.WithMany(t => t.Commentaires)
|
||||
.HasForeignKey(c => c.IdTitre)
|
||||
.OnDelete(DeleteBehavior.Cascade);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Titre>(entity =>
|
||||
{
|
||||
entity.HasKey(t => t.IdTitre)
|
||||
.HasName("PK_Titre");
|
||||
|
||||
entity.HasMany(t => t.Styles)
|
||||
.WithMany(s => s.Titres)
|
||||
.UsingEntity<Dictionary<string, object>>(
|
||||
"TitreStyle",
|
||||
right => right.HasOne<Style>()
|
||||
.WithMany()
|
||||
.HasForeignKey("IdStyle")
|
||||
.OnDelete(DeleteBehavior.Cascade),
|
||||
left => left.HasOne<Titre>()
|
||||
.WithMany()
|
||||
.HasForeignKey("IdTitre")
|
||||
.OnDelete(DeleteBehavior.Cascade),
|
||||
join =>
|
||||
{
|
||||
join.HasKey("IdTitre", "IdStyle");
|
||||
join.ToTable("TitreStyle");
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user