oublie push

part2
Tom RAMBEAU 1 year ago
parent c2dc6889ae
commit 3dd8e6dcb7

@ -1,47 +0,0 @@
// <auto-generated />
using DbContextLib;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DbContextLib.Migrations
{
[DbContext(typeof(LibraryContext))]
[Migration("20240209010818_Mg")]
partial class Mg
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "8.0.1");
modelBuilder.Entity("Entities.BookEntity", b =>
{
b.Property<int>("ID")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Author")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Isbn")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("ID");
b.ToTable("BooksSet");
});
#pragma warning restore 612, 618
}
}
}

@ -1,36 +0,0 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DbContextLib.Migrations
{
/// <inheritdoc />
public partial class Mg : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "BooksSet",
columns: table => new
{
ID = table.Column<int>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Title = table.Column<string>(type: "TEXT", nullable: false),
Author = table.Column<string>(type: "TEXT", nullable: false),
Isbn = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_BooksSet", x => x.ID);
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "BooksSet");
}
}
}

@ -1,44 +0,0 @@
// <auto-generated />
using DbContextLib;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace DbContextLib.Migrations
{
[DbContext(typeof(LibraryContext))]
partial class LibraryContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "8.0.1");
modelBuilder.Entity("Entities.BookEntity", b =>
{
b.Property<int>("ID")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Author")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Isbn")
.IsRequired()
.HasColumnType("TEXT");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("ID");
b.ToTable("BooksSet");
});
#pragma warning restore 612, 618
}
}
}

@ -9,17 +9,14 @@ namespace Entities
public class BookEntity public class BookEntity
{ {
public int ID { get; set; } public long ID { get; set; }
public string Title { get; set; } public string Title { get; set; }
public string Author { get; set; } public string Author { get; set; }
public string Isbn { get; set; } public string Isbn { get; set; }
public PersonEntity? Person { get; set; } public int PersonId { get; set; }
public PersonEntity? Owner { get; set; }
public BookEntity(string title, string author, string isbn) {
Title = title;
Author = author;
Isbn = isbn;
}
} }
} }

@ -6,4 +6,17 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project> </Project>

@ -8,11 +8,12 @@ namespace Entities
{ {
public class PersonEntity public class PersonEntity
{ {
public long Id { get; set; } public int Id { get; set; }
public string FirstName { get; set; } public string FirstName { get; set; }
public string LastName { get; set; } public string LastName { get; set; }
public ICollection<BookEntity> Books { get; set; } public ICollection<BookEntity> Books { get; set; } = new List<BookEntity>();
} }
} }

@ -2,26 +2,32 @@
using Entities; using Entities;
using DbContextLib; using DbContextLib;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using System.Reflection;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.EntityFrameworkCore;
// See https://aka.ms/new-console-template for more information // See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!"); Console.WriteLine("Hello, World!");
using (var context = new LibraryContext()) using (var context = new LibraryContext())
{ {
BookEntity chewie = new BookEntity("B3", "test1", "test1"); context.Database.EnsureCreated();
BookEntity yoda = new BookEntity ("B4", "test2", "test2");
BookEntity ewok = new BookEntity ("mistake", "test3", "test3");
BookEntity the100 = new BookEntity("the100", "test4", "test4");
context.BooksSet.Add(chewie); PersonEntity p1 = new PersonEntity() { FirstName = "Tom", LastName = "Rambeau" };
context.BooksSet.Add(yoda); PersonEntity p2 = new PersonEntity() { FirstName = "Erwan", LastName = "Manager" };
context.BooksSet.Add(ewok); BookEntity chewie = new BookEntity() { Title = "mistake", Author = "test1", Isbn ="test1"};
context.BooksSet.Add(the100); BookEntity the100 = new BookEntity() { Title = "the100", Author = "test4", Isbn = "test4", Owner = p1 };
BookEntity GOT = new BookEntity() { Title = "GOT", Author = "lastTest", Isbn = "lastTest"};
context.Add(p1);
context.Add(p2);
context.Add(chewie);
context.Add(GOT);
context.Add(the100);
context.SaveChanges(); context.SaveChanges();
} }
using (var context = new LibraryContext()) using (var context = new LibraryContext())
{ {
foreach (var n in context.BooksSet) foreach (var n in context.BooksSet)
@ -49,3 +55,81 @@ using (var context = new LibraryContext())
context.SaveChanges(); context.SaveChanges();
} }
using (var context = new LibraryContext())
{
Console.WriteLine("All people");
var people = context.PersonSet;
foreach(var p in people)
{
Console.WriteLine($"firstname: {p.FirstName}, lastname: {p.LastName}");
}
}
//emprunt
using (var context = new LibraryContext())
{
var books = context.BooksSet;
foreach(var book in books)
{
if (book.Owner == null)
{
book.Owner = context.PersonSet.Where(b => b.FirstName.StartsWith("E")).Include(b => b.Books).First();
Console.WriteLine($" nouveau propriétaire du livre: {book.Owner.FirstName}");
break;
}
}
context.SaveChanges();
}
//Rendu
using (var context = new LibraryContext())
{
var books = context.BooksSet;
if (books != null)
{
foreach (var book in books)
{
//Console.WriteLine(book.Owner.FirstName);
if (book.Owner != null)
{
Console.WriteLine($" propriétaire du livre avant rendu : {book.Owner.FirstName}");
book.Owner = null;
Console.WriteLine("propriétaire a rendu le libre");
break;
}
else
{
Console.WriteLine("livre sans propriétaire" + book.Title);
}
}
}
context.SaveChanges();
}
//DeleteAllItem
using (var context = new LibraryContext())
{
var allBooks = context.BooksSet;
if ( allBooks != null)
{
foreach (var book in allBooks)
{
context.BooksSet.Remove(book);
}
}
var allPeople = context.PersonSet;
if (allBooks != null)
{
foreach (var person in allPeople)
{
context.PersonSet.Remove(person);
}
}
context.SaveChanges();
}

Binary file not shown.

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save