首页 > 其他分享 >代码优先Fluent API 配置

代码优先Fluent API 配置

时间:2022-09-29 07:55:06浏览次数:63  
标签:优先 实体类 Fluent API modelBuilder Data Annotation

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

相关文章

  • EFCore实体优先,模型驱动开发
    以下代码在”程序包管理控件器“窗口执行,且必须添加:Microsoft.EntityFrameworkCore.Tools包根据实体类生成迁移代码:add-migrationInitialCreate执行数据库迁移代码......
  • 请求 blob 图像并使用 fetch API 转换为 base64
    通用功能:functionurlContentToDataUri(url){returnfetch(url).then(response=>response.blob()).then(blob=>newPromise(cal......
  • APICloud可视化编程(二)
    上一期我们为大家讲解低代码在国内市场的当前现状以及APICloud可视化开发工具的组件类型和特点。相信大家对可视化编程有了一个整体的了解,那么今天带大家更进一步的使用组......
  • APICloud可视化编程(二)
    上一期我们为大家讲解低代码在国内市场的当前现状以及APICloud可视化开发工具的组件类型和特点。相信大家对可视化编程有了一个整体的了解,那么今天带大家更进一步的使用组......
  • 使用Python的Win32api接口实现后台的键鼠模拟的消息模拟
    importtimeimportwin32apiimportwin32conimportwin32guiclassVirtual_Keyboard(object):def__init__(self,hwnd):self.hwnd=hwnds......
  • Jmix 中 REST API 的两种实现
    你知道吗,在Jmix中,RESTAPI有两种实现方式!很多应用是采取前后端分离的方式进行开发。这种模式下,对前端的选择相对灵活,可以根据团队的擅长技能选择流行的Angular/React/......
  • 如何提取 IOS Document_apis
    关于IOS私有库的搭建,⽹上的教程很少,目前为止,发现的⼀个⽐较好的⽂章,是教你私有库的搭建和扫描,但是⽂章因为存在时间⽐较⻓,套在现在框架中,难免有些不适⽤,我就在⼤神(Deft_MK......
  • java8实战十一: java8----新的日期时间API
    java8中新的时间和日期APIJava的API提供了很多有用的组件,能帮助你构建复杂的应用。不过,JavaAPI也不总是完美的。我们相信大多数有经验的程序员都会赞同Java8之前的库对......
  • 59、Window10+VS2019调用百度的API进行活体检测
    基本思想:给客户搞了个摄像头的人证比对历程,真艰辛;本以为很简单的一个事情,最开始是人证比对,客户搞成了照片测试;我又搞成了眨眼测试,客户用上了手机播放视频;我又又搞成了手机......
  • 在Python使用Win32api接口实现后台截图
    1#对后台窗口截图2importwin32gui,win32ui,win32con3importcv24importnumpyasnp56#获取后台窗口的句柄,注意后台窗口不能最小化7hWnd=win32......