【EF Core】Fluent API
Fluent API
1、视图与实体类映射
modelBuilder.Entity().ToView("blogsView");
2、排除属性映射
modelBuilder.Entity().Ignore(b => b. Name2);
3、配置列名
modelBuilder.Entity().Property(b =>b.BlogId).HasColumnName("blog_id");
4、配置列数据类型
builder.Property(e => e.Title) .HasColumnType("varchar(200)")
5、配置主键
默认把名字为Id或者“实体类型+Id“的属性作为主键,可以用HasKey()来配置其他属性作为主键。
modelBuilder.Entity().HasKey(c => c.Number);
支持复合主键,但是不建议使用。
6、生成列的值?
modelBuilder.Entity().Property(b => b.Number).ValueGeneratedOnAdd();
7、可以用HasDefaultValue()为属性设定默认值
modelBuilder.Entity().Property(b => b.Age).HasDefaultValue(6);
8、索引
modelBuilder.Entity().HasIndex(b => b.Url);
复合索引
modelBuilder.Entity().HasIndex(p => new { p.FirstName, p.LastName });
唯一索引
IsUnique();
聚集索引
IsClustered()
9、用EF Core太多高级特性的时候谨慎,尽量不要和业务逻辑混合在一起,以免“不能自拔”。比如Ignore、Shadow、Table Splitting等……