Add database models (Entity Framework)
This commit is contained in:
parent
ca3570c197
commit
f2b3b0f4ff
@ -5,7 +5,9 @@ VisualStudioVersion = 17.8.34511.84
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SushiBarView", "SushiBarView\SushiBarView.csproj", "{68873614-5B4D-4753-B03B-F28E73E17951}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SushiBarDataModels", "SushiBarDataModels\SushiBarDataModels.csproj", "{4A5A85B2-9B70-4493-B550-0E29FE82E9FD}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SushiBarDataModels", "SushiBarDataModels\SushiBarDataModels.csproj", "{4A5A85B2-9B70-4493-B550-0E29FE82E9FD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SushiBarDatabaseImplement", "SushiBarDatabaseImplement\SushiBarDatabaseImplement.csproj", "{135C846B-59EC-4803-B07C-8991C60C57D6}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -21,6 +23,10 @@ Global
|
||||
{4A5A85B2-9B70-4493-B550-0E29FE82E9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4A5A85B2-9B70-4493-B550-0E29FE82E9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4A5A85B2-9B70-4493-B550-0E29FE82E9FD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{135C846B-59EC-4803-B07C-8991C60C57D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{135C846B-59EC-4803-B07C-8991C60C57D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{135C846B-59EC-4803-B07C-8991C60C57D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{135C846B-59EC-4803-B07C-8991C60C57D6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
28
SushiBarDatabaseImplement/Models/Cheque.cs
Normal file
28
SushiBarDatabaseImplement/Models/Cheque.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class Cheque
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
public int? CustomerId { get; set; }
|
||||
|
||||
public virtual Customer? Customer { get; set; }
|
||||
|
||||
[Required]
|
||||
public DateTime OrderDate { get; set; }
|
||||
|
||||
[Required]
|
||||
public double TotalSum { get; set; }
|
||||
|
||||
public int? PromotionId { get; set; }
|
||||
|
||||
public virtual Promotion? Promotion { get; set; }
|
||||
|
||||
[ForeignKey("Cheque")]
|
||||
public List<ChequeItem> ChequeItems { get; set; } = new();
|
||||
}
|
||||
}
|
28
SushiBarDatabaseImplement/Models/ChequeItem.cs
Normal file
28
SushiBarDatabaseImplement/Models/ChequeItem.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class ChequeItem
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
public int ChequeId { get; set; }
|
||||
|
||||
public virtual Cheque Cheque { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
public int DishId { get; set; }
|
||||
|
||||
public virtual Dish Dish { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
public int CookId { get; set; }
|
||||
|
||||
public virtual Cook Cook { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
public int Count { get; set; }
|
||||
}
|
||||
}
|
20
SushiBarDatabaseImplement/Models/Cook.cs
Normal file
20
SushiBarDatabaseImplement/Models/Cook.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class Cook
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
public string Fio { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public DateTime EmploymentDate { get; set; }
|
||||
|
||||
[ForeignKey("CookId")]
|
||||
public List<ChequeItem> ChequeItems { get; set; } = new();
|
||||
}
|
||||
}
|
23
SushiBarDatabaseImplement/Models/Customer.cs
Normal file
23
SushiBarDatabaseImplement/Models/Customer.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class Customer
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
public string Fio { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public DateTime BirthdayDate { get; set; }
|
||||
|
||||
[Required]
|
||||
public double SumOfAllOrders { get; set; }
|
||||
|
||||
[ForeignKey("CustomerId")]
|
||||
public List<Cheque> Cheques { get; set; } = new();
|
||||
}
|
||||
}
|
23
SushiBarDatabaseImplement/Models/Dish.cs
Normal file
23
SushiBarDatabaseImplement/Models/Dish.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class Dish
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
public string DishName { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Category { get; set; } = string.Empty;
|
||||
|
||||
[ForeignKey("DishId")]
|
||||
public virtual List<DishIngredient> DishIngredients { get; set; } = new();
|
||||
|
||||
[ForeignKey("DishId")]
|
||||
public List<ChequeItem> ChequeItems { get; set; } = new();
|
||||
}
|
||||
}
|
23
SushiBarDatabaseImplement/Models/DishIngredient.cs
Normal file
23
SushiBarDatabaseImplement/Models/DishIngredient.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class DishIngredient
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
public int DishId { get; set; }
|
||||
|
||||
public virtual Dish Dish { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
public int IngredientId { get; set; }
|
||||
|
||||
public virtual Ingredient Ingredient { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
public int Count { get; set; }
|
||||
}
|
||||
}
|
23
SushiBarDatabaseImplement/Models/Ingredient.cs
Normal file
23
SushiBarDatabaseImplement/Models/Ingredient.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class Ingredient
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
public string IngredientName { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public string Unit { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public double Cost { get; set; }
|
||||
|
||||
[ForeignKey("IngredientId")]
|
||||
public virtual List<DishIngredient> DishIngredients { get; set; } = new();
|
||||
}
|
||||
}
|
23
SushiBarDatabaseImplement/Models/Promotion.cs
Normal file
23
SushiBarDatabaseImplement/Models/Promotion.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace SushiBarDatabaseImplement.Models
|
||||
{
|
||||
public class Promotion
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
public string PromotionName { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
public float Discount { get; set; }
|
||||
|
||||
[Required]
|
||||
public double TriggeringSum { get; set; }
|
||||
|
||||
[ForeignKey("PromotionId")]
|
||||
public List<Cheque> Cheques { get; set; } = new();
|
||||
}
|
||||
}
|
36
SushiBarDatabaseImplement/SushiBarDatabase.cs
Normal file
36
SushiBarDatabaseImplement/SushiBarDatabase.cs
Normal file
@ -0,0 +1,36 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using SushiBarDatabaseImplement.Models;
|
||||
|
||||
namespace SushiBarDatabaseImplement
|
||||
{
|
||||
public class SushiBarDatabase : DbContext
|
||||
{
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder OptionsBuilder)
|
||||
{
|
||||
if (OptionsBuilder.IsConfigured == false)
|
||||
{
|
||||
OptionsBuilder.UseNpgsql(@"Host=192.168.56.101;Port=5436;Database=postgres;Username=postgres;Password=admin");
|
||||
}
|
||||
base.OnConfiguring(OptionsBuilder);
|
||||
|
||||
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
||||
AppContext.SetSwitch("Npgsql.DisableDataTimeInfinityConversions", true);
|
||||
}
|
||||
|
||||
public virtual DbSet<Dish> Dishes { get; set; }
|
||||
|
||||
public virtual DbSet<Ingredient> Ingredients { get; set; }
|
||||
|
||||
public virtual DbSet<DishIngredient> DishIngredients { get; set; }
|
||||
|
||||
public virtual DbSet<Cheque> Cheques { get; set; }
|
||||
|
||||
public virtual DbSet<ChequeItem> ChequeItems { get; set; }
|
||||
|
||||
public virtual DbSet<Cook> Cooks { get; set; }
|
||||
|
||||
public virtual DbSet<Customer> Customers { get; set; }
|
||||
|
||||
public virtual DbSet<Promotion> Promotions { get; set; }
|
||||
}
|
||||
}
|
19
SushiBarDatabaseImplement/SushiBarDatabaseImplement.csproj
Normal file
19
SushiBarDatabaseImplement/SushiBarDatabaseImplement.csproj
Normal file
@ -0,0 +1,19 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.19" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.19">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Npgsql" Version="8.0.3" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.18" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
Loading…
x
Reference in New Issue
Block a user