0
到目前为止,我已经在数据库表之间建立了流畅的api关联。如何用流利的api命名地图关联
例如:
//Map Skill Associations
modelBuilder.Entity<Skill>()
.HasMany(s => s.Employees).WithMany(e => e.Skills)
.Map(m => {
m.ToTable("Employee_Skill");
m.MapLeftKey("SkillID");
m.MapRightKey("EmployeeID");
});
//Map Employee Associations
modelBuilder.Entity<Employee>()
.HasMany(e => e.Skills).WithMany(s => s.Employees)
.Map(m => {
m.ToTable("Employee_Skill");
m.MapLeftKey("EmployeeID");
m.MapRightKey("SkillID");
});
//Map Client Properties to Fields
modelBuilder.Entity<Employee>()
.HasKey(e => e.EmployeeId).ToTable("Employee");
modelBuilder.Entity<Employee>()
.Property(e => e.EmployeeId).HasColumnName("id");
modelBuilder.Entity<Employee>()
.Property(e => e.FirstName).HasColumnName("fname");
modelBuilder.Entity<Employee>()
.Property(e => e.LastName).HasColumnName("lname");
modelBuilder.Entity<Employee>()
.Property(e => e.LinkedIn).HasColumnName("linkedin");
modelBuilder.Entity<Employee>()
.Property(e => e.Active).HasColumnName("active");
modelBuilder.Entity<Employee>()
.Property(e => e.Inactive).HasColumnName("inactive");
modelBuilder.Entity<Employee>()
.Property(e => e.Created).HasColumnName("created");
//Map Skill Properties to Fields
modelBuilder.Entity<Skill>()
.HasKey(s => s.SkillId).ToTable("Skill");
modelBuilder.Entity<Skill>()
.Property(s => s.SkillId).HasColumnName("id");
modelBuilder.Entity<Skill>()
.Property(s => s.Name).HasColumnName("name");
modelBuilder.Entity<Skill>()
.Property(s => s.Description).HasColumnName("description");
modelBuilder.Entity<Skill>()
.Property(s => s.Active).HasColumnName("active");
modelBuilder.Entity<Skill>()
.Property(s => s.Inactive).HasColumnName("inactive");
在过去,我已经处理了DBMX文件,做实体的之间的视觉联系。在代码中,当我想加载关联时,我会执行类似Context.Employees.Include("Skills")
的操作,以确保Employee实体将在返回集合中加载关联的技能。
随着流利,我怎么可以使用相同的语法结构加载(认为它的LazyLoading)收集对象在需要时,否则不会自动加载它们。
我似乎没有任何选项允许我将技能或雇员的名称命名为相应的实体。
任何帮助将不胜感激。
你说使用'virtual'但你的代码示例缺少'virtual'关键字 – Claies
@Alexander:我明白你的意思。曾经玩过这个想法。刷新我的记忆,当我访问数据部分正确时,虚拟方法只加载数据?像'Employee.Skills'这样的东西,还是我需要做'Include(“技能”)'加载属性的数据? – GoldBishop
对不起,忘了虚拟) – alexmac