在EF core里,可以通過實現IEntityTypeConfiguration來進行映射。
一、官網文檔
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-2.0
二、示例(.net core控制台程序)
示例使用的數據庫是mysql
1、新建模型:
public class Students { public int Id { get; set; } public string Name { get; set; } public decimal Score { get; set; } }
2、實現IEntityTypeConfiguration
public class StudentsMap : IEntityTypeConfiguration<Students> { public void Configure(EntityTypeBuilder<Students> builder) { builder.ToTable("Students"); builder.HasKey(m => m.Id); builder.Property(m => m.Id).ValueGeneratedOnAdd(); builder.Property(m => m.Name); } }
3、定義context
public class SchoolContext : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseMySql("Server=localhost;port=3306;database=test;uid=root;pwd=pwd;Convert Zero Datetime=True;", b => b.MaxBatchSize(30)); } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); builder.ApplyConfiguration(new StudentsMap()); } }
4、使用migrations遷移命令,得到數據庫。
5、測試添加數據
class Program { static void Main(string[] args) { using (var _context = new SchoolContext()) { var stu = new Students() { Name = "test", Score = 100 }; _context.Set<Students>().Add(stu); _context.SaveChanges(); } } }
6、查看數據庫,數據已經插入: