EFCore_创建项目

添加依赖

Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools(Migration工具)

根据使用的DB添加对应依赖:

SQL Server:Microsoft.EntityFrameworkCore.SqlServer
添加该依赖时可不添加Microsoft.EntityFrameworkCore,该依赖会捆绑添加

MySQL: Pomelo.EntityFrameworkCore.MySQL
该依赖为民间项目。Oracle官方也提供MySQL依赖,但是跟新速度极慢

......

创建实体类

internal class Book
{public long Id { get; set; }public string Title { get; set; }public string AuthorName { get; set; }public DateTime PubTime { get; set; }public double Price { get; set; }
}

创建配置类

1. 实体类配置类(可选)

internal class BookConfig : IEntityTypeConfiguration<Book>
{public void Configure(EntityTypeBuilder<Book> builder){builder.ToTable("Books"); // 表名builder.Property(e => e.Title) // 对属性进行设置//.HasColumnName("Book_Title")     // 字段名(默认为属性名)//.HasColumnType("varchar(50)")    // 字段类型//.HasDefaultValue("DefaultTitle") // 字段默认值.IsRequired(true)  // 字段是否可为null.HasMaxLength(50); // 字段最大长度//builder.Ignore(e => e.PubTime); // 忽略字段(不进行实体类->表的映射)//builder.HasKey(e => e.Id);      // 设置主键//builder.HasIndex(e => e.Title); // 设置索引//builder.HasIndex(e => new { e.Title, e.AuthorName }); // 设置复合索引 | IsUnique()设置唯一索引 | IsClustered()设置聚集索引}
}

配置类实现IEntityTypeConfiguration<>接口,可在其中对表进行详细设置,常用可设置项详见代码注释(若不创建实体类配置类,则会采用默认配置,详见本节文末)

2. DB配置类

internal class ThisDbContext : DbContext
{public DbSet<Book> Books { get; set; } // 实体protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){string connStr = "server=localhost;port=3306;database=x;user=root;password=xyz";//optionsBuilder.UseSqlServer(connStr); // SQLServer连接设置optionsBuilder.UseMySql(connStr, new MySqlServerVersion(new Version(8, 0, 33))); // MySQL连接设置}protected override void OnModelCreating(ModelBuilder modelBuilder){base.OnModelCreating(modelBuilder);modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly); // 实体类配置类(实现IEntityTypeConfiguration<>接口的类)所属Assembly}
}

默认配置:

1.默认将实体类属性名作为表字段名
2.默认将DbSet<>属性名作为表名
3.默认将"Id"或"实体类名+Id"属性对应的表字段设置为主键

初始化DB

在"程序包管理器控制台"中执行:
add-migration xxx(此次migration的代号)
update-database

关于常用命令,可参考 EFCore_Migration常用命令-CSDN博客

试运行

DB:

Program.cs

internal class Program
{static void Main(string[] args){using ThisDbContext dbContext = new();IQueryable<Book> books = dbContext.Books.Where(e => e.Price > 0);foreach (var item in books){Console.WriteLine(item.Title);}}
}

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/700939.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全工程师基础模拟试题

安全工程师基础模拟试题作为一名安全工程师&#xff0c;掌握基本的安全知识和技能是必不可少的。下面是一些基础模拟试题&#xff0c;帮助您检验自己的安全工程师能力。1.在网络安全中&#xff0c;什么是… 1安全工程师基础模拟试题 作为一名安全工程师&#xff0c;掌握基本的…

【目标检测】YOLOv5|YOLOv8模型QT界面可视化部署

YOLO-Deploy-QT_Interface 最近笔者做了YOLO系列算法的部署工作&#xff0c;现做一个总结。主要工作是做了用于部署YOLOv5和YOLOv8的可视化QT界面&#xff0c;可实现图片、文件夹、视频、摄像头的ONNX与OpenVino部署&#xff0c;具体效果如下&#xff1a; 代码链接&#xff1…

FreeRTOS事件标志组

目录 一、事件标志组的概念 1、事件标志位 2、事件标志组 二、事件标志组相关API 1、创建事件标志组 2、设置事件标志位 3、清除事件标志位 4、等待事件标志位 三、事件标志组实操 1、实验需求 2、CubeMX配置 3、代码实现 一、事件标志组的概念 1、事件标志位 表…

【瑞萨RA6M3】1. 基于 vscode 搭建开发环境(后续)

编译 mkdir build cd build cmake .. -G"Unix Makefiles" make -j或者 cmake -Bbuild -G"Unix Makefiles" cmake --build build创建快捷指令&#xff1a; 删除 .vscode/tasks.json&#xff0c; 存储占用和生成 MAP 编译完成后&#xff0c;打印内存占用…

GD32F103C8T6 TQFP-48 32位嵌入式处理器 MCU单片机 微 控制器芯片

GD32F103C8T6 在工业控制领域中有着广泛的应用&#xff0c;下面是一些典型的例子&#xff1a; 1. 电机控制&#xff1a;GD32F103C8T6 可用于直流电机、交流电机和步进电机的控制。它可以通过 PWM、ADC 和 GPIO 等外设实现电机的速度和位置控制。 2. 过程控制&#xff1a;在自…

PDPS15---安装教程---附安装包

目录 第1章 文件准备 1.1 安装包列表 第2章 安装Perl 2.1 Perl安装和路径选择 第3章 安装Java 3.1 Java安装和路径选择 第4章 安装Oracle 4.1 双击Setup 第5章 数据库(Oracle)和注册表(Perl) 5.1 数据库创建 5.2 注册表修改 第6章 安装Tecnomatix 6.1 安装Tecnoma…

如何修复显示器或笔记本电脑屏幕的黄色色调?这里提供几种方法

序言 如果你的笔记本电脑屏幕呈淡黄色,则可以启用夜灯功能。该问题也可能源于连接松散的显示电缆、损坏的显卡驱动程序或错误配置的显示器设置。以下是一些故障排除步骤,你可以尝试解决此问题。 禁用夜间模式 夜间模式功能旨在减少显示器的蓝色色调,使屏幕看起来更温暖,…

在微信小程序项目中安装和使用 Vant 组件库

vant Wwapp 小程序开发组件库官网 Vant Weapp - 轻量、可靠的小程序 UI 组件库 安装 Vant 组件库 1.在微信小程序项目文件目录的空白位置右键&#xff0c;选择在外部终端窗口中打开 2在命令行输入如下命令&#xff08;在项目中创建包管理配置文件 package.json&#xff09; …

2024年高考倒计时精品网页

2024年高考倒计时精品网页 前言效果图部分代码领取源码下期更新预报 前言 随着季风轻轻掠过&#xff0c;岁月如梭&#xff0c;再次迎来了这个属于青春与梦想交汇的时刻——高考。这是一场知识的较量&#xff0c;更是一次意志的考验。在这最后的冲刺阶段&#xff0c;每一刻都显…

超级简单的地图操作工具开发可疑应急,地图画点,画线,画区域,获取地图经纬度等

使用echars的地图画点,画线,画区域,获取地图经纬度等 解压密码:10086007 地图也是用临时的bmap.js和china.js纯离线二选一 一共就这么多文件 画点,画线,画区域 点击地图获取经纬度-打印到控制台,这样就能渲染航迹,多变形,结合其他算法算圆等等操作 下载资源:https://download…

Mirror从入门到入神

Mirror从入门到成神 文章目录 Mirror从入门到成神简介NetworkClientRegisterPrefabConnect (string address)Disconnect ()activeactiveHost NetworkServerSpawn 简介 Mirror是一个unity网络同步框架&#xff0c;基于MonoBehaviour生命周期的回调的基础上进行数值的同步&#…

数据新探:用Python挖掘互联网的隐藏宝藏

Hello&#xff0c;我是你们的阿佑&#xff0c;今天给大家上的菜是——数据存储&#xff01;听起来枯燥无味&#xff1f;错了&#xff01;阿佑将带你重新认识数据存储的艺术。就像为珍贵的艺术品寻找完美的展览馆&#xff0c;为你的数据选择合适的存储方式同样重要&#xff01; …