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);
        }
    }
}

运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文详细解析Google编码规范工具cpplint的下载安装与使用

目录 一、什么是cpplint 二、cpplint能实现的功能 三、cpplint的下载与使用 1、配置python环境 2、安装cpplint 四、cpplint常用命令讲解 1、常用命令查看 2、常用命令详解 3、命令使用方式 五、 cpplint的实用技巧 1、集成cpplint 1.1、修改调用接口. 1.2、直接把…

基于Spring封装一个websocket工具类使用事件发布进行解耦和管理

最近工作中&#xff0c;需要将原先的Http请求换成WebSocket&#xff0c;故此需要使用到WebSocket与前端交互。故此这边需要研究一下WebSocket到底有何优点和不可替代性&#xff1a; WebSocket优点&#xff1a; WebSocket 协议提供了一种在客户端和服务器之间进行全双工通信的…

高质量英文文献应该如何查找并且阅读?

1. 查找 使用谷歌学术进行论文关键字检索&#xff0c;查找高度匹配的论文。这里我们可以选择年限等信息进行筛选。作为研究者我们一般选择近三年的文章进行阅读。这里谷歌学术需要科学上网&#xff0c;请大家自行解决。 https://scholar.google.com/ 2. 查看期刊等级 我们查…

Go Gin使用JWT实现认证机制

什么是JWT JWT是JSON Web Token的缩写,是一种跨域认证的解决方案。 使用JWT解决什么问题 传统的登录认证的实现,依赖客户端浏览器的cookie和服务器的session,这种实现登录的方式有很大的局限性。 对于部署在单台服务器的应用来说,使用cookie+session登录认证的方案尚…

Apache2.4和PHP8的量子纠缠

Apache不建议你用&#xff0c;PHP建议使用

二进制部署k8s---下篇

一 master02 节点部署 1 先在master01 添加映射master02 对master02进行环境初始化 3 从 master01 节点上拷贝证书文件、各master组件的配置文件和服务管理文件到 master02 节点 scp -r /opt/etcd/ root192.168.11.12:/opt/ scp -r /opt/kubernetes/ root192.168.11.12:/opt…

scanf读取标准输入

内容 scanf函数的原理 多种数据类型混合输入 常用的数据输入/输出函数 程序员可以给程序输入数据&#xff0c;程序处理后会返回一个输出。C语言通过函数库读取标准输入&#xff0c;然后通过对应函数处理将结果打印到屏幕上&#xff0c;printf函数可以将结果打印到屏幕上。下…

中国品牌日 | 紫光展锐以科技创新驱动品牌价值 提升全球竞争力

5月10日至5月14日&#xff0c;以“中国品牌&#xff0c;世界共享&#xff1b;国货潮牌&#xff0c;品筑未来”为主题的第八届中国品牌日活动在上海世博展览馆举行。该活动由国家发展改革委联合国务院国资委、市场监管总局、国家知识产权局共同主办&#xff0c;聚焦新经济新消费…

高通QCS6490开发(一): 广翼智联FV01 AI板卡简介

《高通QCS6490开发》是一系列AIoT应用开发文章&#xff0c;我们将会在系列文章中陆续介绍基于QCS6490平台上的AIoT应用开发&#xff0c;在文章中&#xff0c;我们选择了广翼智联&#xff08;FAIOT&#xff09;公司的FV01产品作为开发板&#xff0c;介绍如何从底层的硬件板卡接线…

JETBRAINS IDES 分享一个2099通用试用码!PhpStorm 2024 版 ,支持一键升级

文章目录 废话不多说上教程&#xff1a;&#xff08;动画教程 图文教程&#xff09;一、动画教程激活 与 升级&#xff08;至最新版本&#xff09; 二、图文教程 &#xff08;推荐&#xff09;Stage 1.下载安装 toolbox-app&#xff08;全家桶管理工具&#xff09;Stage 2 : 下…

软考一年只能考一次吗?24软考各科目考试时间一览表

软考考试次数&#xff1a; 软考高级【系统分析师】及【系统架构设计师】是一年考两次的。 此外&#xff0c;软考中级【软件设计师】和【网络工程师】也是一年考两次的。 其他科目一年都只开考一次&#xff0c;或者上半年开考&#xff0c;或者下半年开考&#xff0c;具体考试…

PCIE V3.0物理层协议学习笔记

一、说明 PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准&#xff0c;它原来的名称为“3GIO”&#xff0c;是由英特尔在2001年提出的&#xff0c;旨在替代旧的PCI&#xff0c;PCI-X和AGP总线标准。 PCIe属于高速串行点对点双通道高…

私活更好用:SpringBoot开源项目!!【送源码】

今天分享一款非常香的SpringBoot大屏开源项目&#xff0c;非常适合接私活用。 这是一款基于SpringBoot代码生成器的快速开发平台&#xff01;采用前后端分离架构&#xff1a;SpringBoot&#xff0c;Mybatis&#xff0c;Shiro&#xff0c;JWT&#xff0c;Vue&Ant Design。强…

【永洪BI】资源导出

路径&#xff1a;管理系统>资源部署>资源导出 1.页面介绍 选择左侧面板中的管理系统&#xff0c;点击资源部署&#xff0c;选择资源导出&#xff0c;进入资源导出页面。 【名称】导出的 jar 文件的名称&#xff0c;必填项。 【描述】导出的 jar 文件中包含的描述信息…

Maven依赖管理项目构建

Maven依赖管理项目构建工具 目录 文章目录 Maven依赖管理项目构建工具目录一、Maven简介1、为什么学习Maven1.1、Maven是一个依赖管理工具1.2、Maven是一个构建工具1.3、结论 2. Maven介绍3. Maven软件工作原理模型图&#xff08;了解&#xff09; 二、Maven安装和配置1. Mave…

TCP(1)

传输层的两大协议是TCP 和 UDP &#xff0c;他们在传输数据的时候起到了不可替代的作用。那么什么是TCP呢&#xff1f; 首先TCP是一个网络传输协议&#xff0c;这个协议保证了可靠的数据传输。TCP是面向字节流的&#xff0c;全双工的&#xff08;也就是通信双方互相发消息&…

【Qt】Qt组件设置背景图片

1. 方法1&#xff08;paintEvent方式&#xff09; 使用paintEvent()实现 1. .h文件中添加虚函数 protected:void paintEvent(QPaintEvent *event) override;添加虚函数方法&#xff1a; 选中父类&#xff0c;点击鼠标右键点击重构点击 Insert Virtual Funtion of Base Class…

【C语言】6.C语言VS实用调试技巧(1)

文章目录 1.什么是 bug2.什么是调试&#xff08;debug&#xff09;&#xff1f;3.Debug 和 Release4.VS调试快捷键4.1 环境准备4.2 调试快捷键 5.监视和内存观察5.1 监视5.2 内存 1.什么是 bug bug现在一般是指在电脑系统或程序中&#xff0c;隐藏着的一些未被发现的缺陷或问题…

MaxKB创建本地知识库

上节已经可以通过MaxKB创建简单的问答系统了&#xff0c;这节开始做自己的知识库&#xff0c;实际上就是把一些本地文件上传到大模型中&#xff0c;让大模型学会这些文件内容&#xff0c;你在问他问题的时候可以通过此文件的内容来回答你&#xff0c;尤其是在针对特定场景或者特…

MyBatis-Plus简介

一、简介 官网&#xff1a;https://baomidou.com/ MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 二、特性 无侵入&#xff1a;只做增强不做改变&#xff0c;引…