EF Core 除了用数据注释 Data Annotation 对实体类进行配置之外,还提供了Fluent API 的方式 对实体类进行配置。
Fluent API 优势:
1. 能够更好的进行职责分离。实体类只负责抽象描述,不涉及和数据库相关的细节,所有数据库相关的细节都放到配置类中,这样我们能更方便的进行大型项目的管理。
2. 功能更强大。Fluent API 包含了 Data Annotation 的全部功能。
两种实体类的配置方案:
1. 混合方案:优先使用Data Annotation,当部分功能无法实现时,则用 Fluent API
2.单一方案:只用 Fluent API (推荐)
Fluent API 基本用法:
1.实体类映射到视图
modelBuilder.Entity<Book>().ToView("blogsView");
2.忽略某个属性映射
2.1 在上下文DbContext方法中的写法
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
//加载当前程序集中所有实现了IEntityTypeConfiguration<T> 接口的类
modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly); //仅当创建实现了EntityTypeConfiguration<Book>类,才需要
modelBuilder.Entity<Book>().Ignore(m=>m.Name2);
}
2.2 在实现了IEntityTypeConfiguration<Book>接口的配置文件中的写法
public class BookEntityConfig : IEntityTypeConfiguration<Book> { public void Configure(EntityTypeBuilder<Book> builder) { builder.Ignore(m => m.Name2); } }
标签:优先,实体类,Fluent,API,modelBuilder,Data,Annotation From: https://www.cnblogs.com/friend/p/16740155.html