2using Microsoft.EntityFrameworkCore;
3using Microsoft.Extensions.Configuration;
14 public DbSet<Module>
Modules {
get;
set; }
22 public DbSet<User>
Users {
get;
set; }
23 public DbSet<Region>
Regions {
get;
set; }
28 public DataContext(DbContextOptions<DataContext> options) : base(options) {}
36 .Property(m => m.IsActive)
37 .HasDefaultValue(
true);
39 modelBuilder.Entity<
Module>()
40 .Property(m => m.IsActive)
41 .HasDefaultValue(
true);
44 .Property(p => p.IsActive)
45 .HasDefaultValue(
true);
48 .Property(p => p.IsActive)
49 .HasDefaultValue(
true);
52 .Property(c => c.IsActive)
53 .HasDefaultValue(
true);
56 .Property(a => a.IsActive)
57 .HasDefaultValue(
true);
60 .Property(a => a.IsQuotation)
61 .HasDefaultValue(
false);
64 .Property(a => a.KeepPriceOnNextPricelist)
65 .HasDefaultValue(
false);
68 .Property(a => a.IsActive)
69 .HasDefaultValue(
true);
72 .Property(p => p.PriorityName)
73 .HasDefaultValue(
null);
76 .Property(c => c.CustomerSince)
77 .HasDefaultValueSql(
"getdate()");
80 .Property(a => a.AgreementCreated)
81 .HasDefaultValueSql(
"getdate()");
84 .Property(ae => ae.AgreementElementCreated)
85 .HasDefaultValueSql(
"getdate()");
89 .Property(p => p.PriorityName)
90 .HasConversion<
string>();
94 .HasMany<PriceList>(p => p.PriceLists)
95 .WithOne(pl => pl.Product)
96 .OnDelete(DeleteBehavior.Restrict);
99 .HasMany<Agreement>(p => p.Agreements)
100 .WithOne(a => a.Product)
101 .OnDelete(DeleteBehavior.Restrict);
104 .HasMany<Module>(p => p.Modules)
105 .WithOne(m => m.Product)
106 .OnDelete(DeleteBehavior.Restrict);
108 modelBuilder.Entity<
Module>()
109 .HasMany<ModuleLevel>(m => m.ModuleLevels)
110 .WithOne(m => m.Module)
111 .OnDelete(DeleteBehavior.Restrict);
114 .HasMany<PriceElement>(m => m.PriceElements)
115 .WithOne(p => p.ModuleLevel)
116 .OnDelete(DeleteBehavior.Restrict);
119 .HasMany<PriceElement>(m => m.PriceElements)
120 .WithOne(p => p.PriceList)
121 .OnDelete(DeleteBehavior.Restrict);
124 .HasMany<PriceList>()
125 .WithOne(p => p.Currency)
126 .OnDelete(DeleteBehavior.Restrict);
129 .HasMany<Agreement>()
130 .WithOne(a => a.Currency)
131 .OnDelete(DeleteBehavior.Restrict);
134 .HasMany<AgreementElement>(a => a.AgreementElements)
135 .WithOne(a => a.Agreement)
136 .OnDelete(DeleteBehavior.Restrict);
139 .HasMany<AgreementElement>(m => m.AgreementElements)
140 .WithOne(a => a.ModuleLevel)
141 .OnDelete(DeleteBehavior.Restrict);
144 .HasMany<Agreement>(c => c.Agreements)
145 .WithOne(a => a.Customer)
146 .OnDelete(DeleteBehavior.Restrict);
150 .WithOne(c => c.Segment)
151 .OnDelete(DeleteBehavior.SetNull);
154 .HasMany<Segment>(ms => ms.Segments)
155 .WithOne(s => s.MainSegment)
156 .OnDelete(DeleteBehavior.SetNull);
160 .WithOne(c => c.Priority)
161 .OnDelete(DeleteBehavior.SetNull);
164 modelBuilder.Entity<
User>()
165 .HasMany<Customer>(u => u.Customers)
166 .WithOne(c => c.User)
167 .OnDelete(DeleteBehavior.SetNull);
170 modelBuilder.Entity<
Region>()
172 .WithOne(c => c.Region)
173 .OnDelete(DeleteBehavior.SetNull);
177 .HasIndex(p => p.ProductName)
181 .HasIndex(p => p.PriceListName)
185 .HasIndex(c => c.CurrencyName)
189 .HasIndex(c => c.OrganizationNumber)
193 .HasIndex(c => c.CustomerName)
196 modelBuilder.Entity<
User>()
197 .HasIndex(u => u.UserEmail)
201 .HasIndex(ms => ms.MainSegmentName)
205 .HasIndex(s => s.SegmentName)
DbSet< PriceElement > PriceElements
DbSet< Segment > Segments
DataContext(DbContextOptions< DataContext > options)
DbSet< MainSegment > MainSegments
DbSet< ModuleLevel > ModuleLevels
DbSet< Customer > Customers
DbSet< Agreement > Agreements
DbSet< Currency > Currencies
DbSet< PriceList > PriceLists
override void OnModelCreating(ModelBuilder modelBuilder)
DbSet< Priority > Priorities
DbSet< Product > Products
DbSet< AgreementElement > AgreementElements