fluent api相关基础知识记录
1、视图与实体映射:builder.ToView("blogsView");
2、排除属性映射:builder.Ignore(b=>b.Name2);
3、配置列名:builder.Property(b=>b.BlogId).HasColumnName("blog_id");//默认为BlogId属性名,后面也可以指定名称
4、配置列数据类型:builder.Property(e=>e.Title).HasColumnType("varchar(200)");
5、配置主键:默认把名字为Id或者“实体类型+Id”的属性作为主键,可以用HasKey()来配置其他属性作为主键。builder.HasKey(e=>e.Number);支持复合主键但是不建议使用。
6、生成列的值:builder.Property(b=>b.Number).ValueGeneratedOnAdd();
7、为属性设定默认值:builder.Property(b=>b.Age).HasDefaultValue(18);
8、索引:builder.HasIndex(b=>b.Url);
9、复合索引:builder.HasIndex(p=>new{p.FirstName,p.LastName});
10、唯一索引:IsUnique();
11、聚集索引:IsClustered();
***文档地址:https://docs.microsoft.com/zh-cn/ef/core/modeling/
使用EF Core太多高级特性的时候需要谨慎,尽量不要和业务逻辑混合在一起,以免造成项目结构代码混乱,比如Ignore,Shadow,Table Splitting等