当前位置: 首页 > article >正文

EF Core学习笔记三

一、Flunet API

Fluent API是一种用于配置EF模型的编程方式,它通过链式调用方式来构建复杂的对象或配置。

Flunet API提供了一种比数据注解(Data Annotaions)更灵活和强大的方式定义模型。

1、使用场景与优势

        1.1、复杂关系的配置,当实体之间存在复杂的关系,如多对多感谢,并且需要对这种关系进行详细的配置(比如中间表的字段、关系的约束条件等)是,Fluent API能够踢狗比数据注释更精细的控制。

        1.2、定制花配置需求,如果对数据库表的命名规则、列的命名规则、数据类型击默认值等有特殊的定制化要求,Flunet API可以更容易实现这些配置,而不受数据注释的固定模式限制。

        1.3、类型安全,与数据注解相比,Fluent API 是类型安全的,编译器可以捕获错误。

2、使用步骤

        2.1、创建上下文类型,首先定义实体类、继承DbContext的上下文类;

        2.2、配置实体和关系,打开继承DbContext的上下文类,重写OnModelCreating方法
        OnModelCreating方法是用来配置模型的关键方法;
        OnConfiguring方法是用来配置数据库连接的 

        使用 ModelBuilder 配置实体‌:在 OnModelCreating 方法中,使用传入的 ModelBuilder 对象来配置实体

  • 配置主键:
    modelBuilder.Entity<Blog>()
        .HasKey(b => b.BlogId);
  • 配置属性:
    modelBuilder.Entity<Blog>()
        .Property(b => b.Url)
        .IsRequired()
        .HasMaxLength(200);
  • 配置关系:
    modelBuilder.Entity<Blog>()
        .HasMany(b => b.Posts)
        .WithOne(p => p.Blog)
        .HasForeignKey(p => p.BlogId)
        .OnDelete(DeleteBehavior.Cascade);
    
    
    //一对多
    entity.HasMany(e => e.Orders)
          .WithOne(e => e.Customer)
          .HasForeignKey(e => e.CustomerId);
    
    //一对一
    entity.HasOne(e => e.Address)
          .WithOne(e => e.Person)
          .HasForeignKey<P

http://www.kler.cn/a/403593.html

相关文章:

  • PDF内容提取,MinerU使用
  • IDEA算法的详细介绍及Python实现
  • 自由学习记录(23)
  • django从入门到精通(六)——auth认证及自定义用户
  • 深入了解 Linux htop 命令:功能、用法与示例
  • Easyexcel(1-注解使用)
  • web——sqliabs靶场——第八关——sqlmap的使用
  • RandSampleMatrix-矩阵乘法实现
  • 一文了解 OpenAI o1-preview 和目前不支持传入的参数
  • 在 C++ 容器中,插入或修改元素时
  • 阅读2020-2023年《国外军用无人机装备技术发展综述》笔记_作战无人机和察打无人机图鉴
  • 全面解析:HTML页面的加载全过程(一)--输入URL地址,与服务器建立连接
  • MATLAB图注意力网络GAT多标签图分类预测可视化
  • 如何运行python脚本
  • 基于java+ssm+Vue的校园美食交流系统设计与实现
  • MyBatis——#{} 和 ${} 的区别和动态 SQL
  • 【Golang】手搓DES加密
  • 5G与4G互通的桥梁:N26接口
  • [js] 0.1+0.2
  • CentOS操作系统下安装Nacos
  • C语言 | Leetcode C语言题解之第564题寻找最近的回文数
  • 《Python网络安全项目实战》项目6 编写密码工具程序
  • C#拼接小文件合成一个大文件
  • Go context.Context
  • Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二)
  • 机器翻译基础与模型 之二: 基于CNN的模型