【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等……