source: resTools_backend/backend/Data/DataContext.cs@ 7a983b0

Last change on this file since 7a983b0 was 7a983b0, checked in by Danilo <danilo.najkov@…>, 2 years ago

move files

  • Property mode set to 100644
File size: 2.3 KB
Line 
1using backend.Entities;
2using Microsoft.EntityFrameworkCore;
3
4namespace backend.Data
5{
6 public class DataContext : DbContext
7 {
8 public DataContext(DbContextOptions<DataContext> dbContextOptions) : base(dbContextOptions)
9 {
10 }
11
12 private DbSet<User> users;
13 public DbSet<User> Users
14 {
15 get
16 {
17 if (users == null)
18 {
19 users = Set<User>();
20 }
21
22 return users;
23 }
24 }
25
26 private DbSet<Restaurant> restaurants;
27 public DbSet<Restaurant> Restoraunts
28 {
29 get
30 {
31 if (restaurants == null)
32 {
33 restaurants = Set<Restaurant>();
34 }
35
36 return restaurants;
37 }
38 }
39
40 private DbSet<Reservation> reservations;
41 public DbSet<Reservation> Reservations
42 {
43 get
44 {
45 if (reservations == null)
46 {
47 reservations = Set<Reservation>();
48 }
49
50 return reservations;
51 }
52 }
53
54
55 protected override void OnModelCreating(ModelBuilder modelBuilder)
56 {
57 //
58 // User
59 //
60 modelBuilder.Entity<User>().Property(x => x.Id).IsRequired().ValueGeneratedOnAdd();
61 modelBuilder.Entity<User>()
62 .HasOne(p => p.Restaurant)
63 .WithOne(b => b.Owner);
64
65 //
66 // Restoraunt
67 //
68 modelBuilder.Entity<Restaurant>().Property(x => x.Id).IsRequired().ValueGeneratedOnAdd();
69 modelBuilder.Entity<Restaurant>()
70 .HasOne(p => p.Owner)
71 .WithOne(b => b.Restaurant)
72 .HasForeignKey<Restaurant>(k => k.OwnerFk);
73 modelBuilder.Entity<Restaurant>()
74 .HasMany(p => p.Reservations)
75 .WithOne(b => b.Restaurant);
76
77 //
78 // Reservation
79 //
80 modelBuilder.Entity<Reservation>().Property(x => x.Id).IsRequired().ValueGeneratedOnAdd();
81 modelBuilder.Entity<Reservation>()
82 .HasOne(p => p.Restaurant)
83 .WithMany(b => b.Reservations);
84 }
85 }
86}
Note: See TracBrowser for help on using the repository browser.