1)數據庫表明的映射
首先我們先來看看數據表明的映射。這里我需要將Departments映射到表名為tb_Departments的表上:
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) { modelBuilder.Entity<Department>().MapSingleType().ToTable("tb_Departments"); }
2)字段的映射
我想在數據庫中的每個字段中都會加上前綴“col_”,比如DepartmentID就是“col_DepartmentID”:
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) { modelBuilder.Entity<Department>().MapSingleType(depart => new { col_DepartmentID = depart.DepartmentID, col_DepartmentName = depart.DepartName, col_Remark = depart.Remark }) .ToTable("tb_Departments"); }
3)復雜類型的映射
在這里我們添加一個CreateInfo的Model:
public class CreateInfo { public string CreateUserID { get; set; } public DateTime? CreateDate { get; set; } }
public class Department { public int DepartmentID { get; set; } public string DepartName { get; set; } public string Remark { get; set; } public CreateInfo CreateInfo { get; set; } public virtual ICollection<Employee> Employees { get; set; } }
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) { modelBuilder.Entity<Department>().MapSingleType(depart => new { col_DepartmentID = depart.DepartmentID, col_DepartmentName = depart.DepartName, col_Remark = depart.Remark, col_CreateUserID= depart.CreateInfo.CreateUserID, col_CreateDate = depart.CreateInfo.CreateDate }) .ToTable("tb_Departments"); }
原因是我們沒有注冊CreateInfo為complex 類型。所以我們首先需要注冊CreateInfo為復合類型,在OnModelCreating中加上注冊的代碼:
OK.
