EFCore_创建项目

news2025/1/18 6:57:50

添加依赖

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.coloradmin.cn/o/1674596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

肺部营养“救星”,让每次呼吸更自由

​#肺科营养#朗格力#班古营养#复合营养素#肺部营养# 正常的健康人,每天自由幸福的呼吸。但是对于肺病患者来说,特别是慢阻肺人群,每一次呼吸都可能是一场挑战,每一口气都显得弥足珍贵。 肺病患者号称沉默的“呼吸杀手”,它虽然沉默,但不代表它没能力,除了引起肺功能下降,氧气…

工业无风扇计算机的优点

无风扇计算机往往采用紧凑且密封的外形&#xff0c;使其坚固耐用&#xff0c;使其能够在需要现场工程师进行维护之前承受恶劣的环境数年。机载移动部件较少或没有移动部件会降低组件无法按预期运行的可能性&#xff0c;或者更糟糕的是发生故障和损坏。采用工业组件和较低的散热…

rabbitmq交换机,死信队列的简单例子

假设我们有一个场景&#xff0c;生产者有消息发到某个直连交换机&#xff0c;这个交换机上有两个队列分别存储两种类型的消息&#xff0c;但是与这两个队列相连的消费者太不争气了&#xff0c;处理消息有点慢&#xff0c;我们想5秒钟这个消息在队列中还没有被消费的话&#xff…

初识java——javaSE(4)类与对象

文章目录 前言一 类与对象1.1 面向过程与面向对象思想的区别&#xff1a;1.2 类的定义1.3 类的实例化——对象通过创建对象&#xff0c;调用对象中的成员变量与方法 1.4 this关键字this的作用一&#xff1a;this 的作用二构造方法&#xff1a;对象创建的两步方法的重载 this的作…

基础ArkTS组件:输入框,开关,评分条(HarmonyOS学习第三课【3.3】)

输入框组件 ArkUI开发框架提供了 2 种类型的输入框&#xff1a; TextInput 和 TextArea &#xff0c;前者只支持单行输入&#xff0c;后者支持多行输入&#xff0c;下面我们分别做下介绍。 TextInput 子组件 无 接口 TextInput(value?:{placeholder?: ResourceStr, tex…

Echarts结课之小杨总结版

Echarts结课之小杨总结版 前言基础回顾框架sale框架代码&#xff1a; user框架基础代码&#xff1a; inventory框架基础代码&#xff1a; total框架基础代码&#xff1a; 基础设置1.标题(Title)2.图例(Legend)实现 3.工具提示(Tooltip)实现 4.X轴(X Axis) 和 Y轴(Y Axis)5.数据…

架构设计入门(Redis架构模式分析)

目录 架构为啥要设计Redis 支持的四种架构模式单机模式性能分析优点缺点 主从复制&#xff08;读写分离&#xff09;结构性能分析优点缺点适用场景 哨兵模式结构优点缺点应用场景 集群模式可用性和可扩展性分析单机模式主从模式哨兵模式集群模式 总结 本文主要以 Redis 为例&am…

【Python |基础入门】入门必备知识(基础各方面全覆盖)

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; &#x1f388;丠丠64-CSDN博客&#x1f388; ✨✨ 帅哥美女们&#xff0c;我们共同加油&#xff01;一起…

Linux —— 线程控制

Linux —— 线程控制 创建多个线程线程的优缺点优点缺点 pthread_self进程和线程的关系pthread_exit 线程等待pthread_ join线程的返回值线程分离pthread_detach 线程取消pthread_cancel pthread_t 的理解 我们今天接着来学习线程&#xff1a; 创建多个线程 我们可以结合以前…

图搜索算法-最短路径算法-贝尔曼-福特算法

相关文章&#xff1a; 数据结构–图的概念 图搜索算法 - 深度优先搜索法&#xff08;DFS&#xff09; 图搜索算法 - 广度优先搜索法&#xff08;BFS&#xff09; 图搜索算法 - 拓扑排序 图搜索算法-最短路径算法-戴克斯特拉算法 贝尔曼-福特算法&#xff08;Bellman-Ford&#…

树莓派 4B putty远程连接登录显示拒绝访问,密码修改

putty显示拒绝访问 可能是树莓派的ip没有找到正确的 在下载系统镜像的时候&#xff0c;会提示设置wifi 这里设置的WiFi和密码需记住&#xff0c;主机名也需记住 可以在手机打开热点&#xff08;将热点的账号和密码改为跟你设置的wifi一样的&#xff09; 可以在手机后台查看…

Linux系统的第六天

昨天&#xff0c;学习了vim编辑工具&#xff0c;今天学习Linux系统的目录结构、补充命令和配置网络。 一、目录结果 1.1目录的特点 Windows和Linux&#xff1a; Windows中c、d、e盘&#xff0c;每个都是一个根系统【多根系统】&#xff1b;Linux中只有一个根【单根系统…

Java数据类型:基本数据类型

Java是一种强类型语言&#xff0c;定义变量时&#xff0c;必须指定数据类型。 // 变量必须指定数据类型 private String username;初学者不免有个疑问&#xff1a;在实际编写代码的过程中&#xff0c;该如何选择数据类型呢&#xff1f; 回答这个问题之前&#xff0c;先来解决…

vulhub靶机struts2环境下的s2-032(CVE-2016-3081)(远程命令执行漏洞)

影响范围 Struts 2.3.19至2.3.20.2、2.3.21至2.3.24.1和2.3.25至2.3.28 当用户提交表单数据并验证失败时&#xff0c;后端会将用户之前提交的参数值使用OGNL表达式%{value}进行解析&#xff0c;然后重新填充到对应的表单数据中。 漏洞搭建 没有特殊要求&#xff0c;请看 (3…

给定两点所能得到的数学关系

给定两点所能得到的数学关系 正文 正文 这里介绍一个基础问题&#xff0c;如果给定平面上的两个点的坐标&#xff0c;那么它们之间能够得到什么数学关系呢&#xff1f; ω arctan ⁡ y 1 − y 0 x 1 − x 0 x 1 − x 0 d cos ⁡ ω y 1 − y 0 d cos ⁡ ω d ( x 1 − x…

干部谈话考察:精准洞悉,助推成长

在组织人事管理的精细布局中&#xff0c;干部谈话考察扮演着举足轻重的角色。它不仅是组织深度了解干部、精准评价其表现的重要窗口&#xff0c;更是推动干部个人成长、优化组织人才配置的关键一环。通过深入的谈话考察&#xff0c;我们能够全面把握干部的思想脉搏、工作能力、…

AngularJS指令

指令分类&#xff1a; 1&#xff09;装饰器型指令 装饰器指令的作用是为DOM添加行为&#xff0c;使其具有某种能力。在AngularS中&#xff0c;大多数内置指令属于装饰器型指令&#xff0c;例如ng-click(单击事件)、ng-hide/ng-show(控制DOM元素的显示和隐藏)等 2&#xff09;组…

uniapp 生成安卓证书没有md5指纹怎么办?

由于最新的jdk版本对应的keystore工具无法查看到md5指纹信息 但是不代表它没有md5指纹信息&#xff0c;只是看不到而已 解决方案&#xff1a; 登录uniapp开发者后台生成安卓云端证书

SSM【Spring SpringMVC Mybatis】—— Spring(二)

如果对于Spring的一些基础理论感兴趣可见&#x1f447; SSM【Spring SpringMVC Mybatis】—— Spring&#xff08;一&#xff09; 目录 1、Spring中bean的作用域 1.1 语法 1.2 四个作用域 2、Spring中bean的生命周期 2.1 bean的生命周期 2.2 bean的后置处理器 2.3 添加后…

【Vue】Vue指令与生命周期以及组件化编码

目录 常用内置指令v-text与v-htmlv-text : 更新元素的 textContentv-html : 更新元素的 innerHTML注意&#xff1a;v-html有安全性问题&#xff01;&#xff01;&#xff01;&#xff01; v-once与v-prev-oncev-pre ref与v-cloakrefv-cloak 自定义指令案例定义语法配置对象中常…