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