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等

 

posted @ 2022-04-01 14:36  混子程序员ZMY  阅读(75)  评论(0编辑  收藏  举报