057 Modify DBContext for the Modeling Lookup Resource of PhbkEmployee - chempkovsky/CS82ANGULAR GitHub Wiki
Using DBContext Wizard is absolutely necessary
The list of the Modeling Tables
- We need to modify DBContext for the following list of the modeling tables
- LpdEmpLastName
- LpdEmpFirstName
- LpdEmpSecondName
- LprEmployee01
- LprEmployee02
- Since, these tables for modeling only all the modifications must be inside
#if (!NOTMODELING) ... #endif
-operator.
Steps required to accomplish the task
- We do not describe step by step instructions
- please repeat the steps similar to those described in the article 035.
- Before you begin, please modify
Directory.Build.props
-file as it described in the Reset Directory Build props file
LpdEmpLastName
- primary key and unique key
modelBuilder.Entity<LpdEmpLastName>().HasAlternateKey(p => p.EmpLastName).HasName("LpdEmpLastNameUK");
modelBuilder.Entity<LpdEmpLastName>().HasKey(p => p.EmpLastNameId);
LpdEmpFirstName
- primary key and unique key
modelBuilder.Entity<LpdEmpFirstName>().HasAlternateKey(p => p.EmpFirstName).HasName("LpdEmpFirstName");
modelBuilder.Entity<LpdEmpFirstName>().HasKey(p => p.EmpFirstNameId);
LpdEmpSecondName
- primary key and unique key
modelBuilder.Entity<LpdEmpSecondName>().HasAlternateKey(p => p.EmpSecondName).HasName("LpdEmpSecondNameUK");
modelBuilder.Entity<LpdEmpSecondName>().HasKey(p => p.EmpSecondNameId);
LprEmployee01
- primary key and foreign keys. The order of the primary key fields is important.
modelBuilder.Entity<LprEmployee01>().HasKey(p => new { p.EmpLastNameIdRef, p.EmpFirstNameIdRef, p.EmpSecondNameIdRef, p.EmployeeId });
modelBuilder.Entity<LprEmployee01>().HasOne(d => d.Employee)
.WithMany(m => m.EmployeeRefs01)
.HasForeignKey(d => d.EmployeeId)
.HasPrincipalKey(p => p.EmployeeId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
modelBuilder.Entity<LprEmployee01>().HasOne(d => d.EmpLastNameDict)
.WithMany(m => m.EmployeeRef01)
.HasForeignKey(d => d.EmpLastNameIdRef)
.HasPrincipalKey(p => p.EmpLastNameId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
modelBuilder.Entity<LprEmployee01>().HasOne(d => d.EmpFirstNameDict)
.WithMany(m => m.EmployeeRef01)
.HasForeignKey(d => d.EmpFirstNameIdRef)
.HasPrincipalKey(p => p.EmpFirstNameId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
modelBuilder.Entity<LprEmployee01>().HasOne(d => d.EmpSecondNameDict)
.WithMany(m => m.EmployeeRef01)
.HasForeignKey(d => d.EmpSecondNameIdRef)
.HasPrincipalKey(p => p.EmpSecondNameId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
LprEmployee02
- primary key and foreign keys. The order of the primary key fields is important.
modelBuilder.Entity<LprEmployee02>().HasKey(p => new { p.DivisionIdRef, p.EmpLastNameIdRef, p.EmpFirstNameIdRef, p.EmpSecondNameIdRef, p.EmployeeId });
modelBuilder.Entity<LprEmployee02>().HasOne(d => d.Employee)
.WithMany(m => m.EmployeeRefs02)
.HasForeignKey(d => d.EmployeeId)
.HasPrincipalKey(p => p.EmployeeId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
modelBuilder.Entity<LprEmployee02>().HasOne(d => d.EmpLastNameDict)
.WithMany(m => m.EmployeeRef02)
.HasForeignKey(d => d.EmpLastNameIdRef)
.HasPrincipalKey(p => p.EmpLastNameId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
modelBuilder.Entity<LprEmployee02>().HasOne(d => d.EmpFirstNameDict)
.WithMany(m => m.EmployeeRef02)
.HasForeignKey(d => d.EmpFirstNameIdRef)
.HasPrincipalKey(p => p.EmpFirstNameId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
modelBuilder.Entity<LprEmployee02>().HasOne(d => d.EmpSecondNameDict)
.WithMany(m => m.EmployeeRef02)
.HasForeignKey(d => d.EmpSecondNameIdRef)
.HasPrincipalKey(p => p.EmpSecondNameId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
modelBuilder.Entity<LprEmployee02>().HasOne(d => d.Division)
.WithMany(m => m.EmployeeRefs02)
.HasForeignKey(d => d.DivisionIdRef)
.HasPrincipalKey(p => p.DivisionId)
.IsRequired(true)
.OnDelete(DeleteBehavior.NoAction);
Reminder
- All settings above along with
DbSet
-declarations must be inside #if (!NOTMODELING) ... #endif
-operator.
Directory.Build.props
-file must be modified again