EF core连接数据库的前期完整配置流程-开发环境搭建

EF core连接数据库完整流程-开发环境搭建

前置:.net6 core webapi不勾选任何配置

声明:这里是以两个配置类来做的,一个T_Books表,一个T_Person表

Book:创建属性及类型

BookConfig:对创建的进行属性数据表的配置,及数据类型控制(相当于在数据库建表的过程

MyDbContext:与数据库相连接,操作数据库(实现表的建立

程序包管理控制台执行语句:

Add-Migration Init

Update-Database

Remove-Migration

1.建实体类

Book实体类

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

Person实体类

namespace WebApplication13
{public class Person{public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }}
}

-----------

2.建配置类

Book配置类

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;namespace WebApplication13
{//作用:按照代码建数据库类,对应那一个表对应public class BookConfig:IEntityTypeConfiguration<Book>//接口{public void Configure(EntityTypeBuilder<Book> builder){builder.ToTable("T_Books");}}
}

Person配置类

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;namespace WebApplication13
{public class PersonConfig : IEntityTypeConfiguration<Person>{public void Configure(EntityTypeBuilder<Person> builder){builder.ToTable("T_Persons");}}
}

---------

Context配置类:与数据库产生联系

MyDbContext:连接数据库及加载前面的配置

using Microsoft.EntityFrameworkCore;namespace WebApplication13
{public class MyDbContext:DbContext{public DbSet<Book> Books { get; set; }public DbSet<Person> Persons { get; set; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){base.OnConfiguring(optionsBuilder);optionsBuilder.UseSqlServer("Server=.; Database=Todo; uid = sa; pwd = 123456; Trusted_Connection = False;");//连接字符串}protected override void OnModelCreating(ModelBuilder modelBuilder){//从指定的程序集里面加载IEntityTypeConfiguration内容this.GetType()base.OnModelCreating(modelBuilder);modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);}}
}

3.生成数据库

工具根据配置的实体类来生成数据库,多步生成,可以回滚

需要安装:

Microsoft.EntityFrameworkCore.Tools

未安装成功执行下面的命令会报这个错误

执行:Add-Migration Init

作用:Add-Migration生成一次迁移

执行:Update-Database

作用:将生成的表同步到数据库

3.1追加属性

执行:Add-Migration AddBrith

可以查看追加的内容

执行:Update-Database

同步更新

4.设置表字段的属性

字段的数据类型改变,可能会导致数据库里已有的数据截断

拓展:

不建立配置类实现实体-数据库表

提示:关闭再打开才能看见新的变化

总结

日常开发的时候建实体类-配置-DbContext-Add-Migration AddBrith-Update Database 哦了

完整代码地址:https://gitee.com/bigcat_li/EFcore

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

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

相关文章

66.Spring是如何整合MyBatis将Mapper接口注册为Bean的原理?

原理 首先MyBatis的Mapper接口核心是JDK动态代理 Spring会排除接口&#xff0c;无法注册到IOC容器中 MyBatis 实现了BeanDefinitionRegistryPostProcessor 可以动态注册BeanDefinition 需要自定义扫描器&#xff08;继承Spring内部扫描器ClassPathBeanDefinitionScanner ) 重…

物业app开发实战:10大功能必备,打造智能社区生活

随着智能科技的快速发展&#xff0c;物业管理也逐渐迈入数字化时代。物业app开发成为了提升社区管理效率、改善居民生活质量的重要途径。在本文中&#xff0c;我将分享10大必备功能&#xff0c;帮助开发者打造智能社区生活的物业app。 1. 便捷的社区公告发布功能 通过物业app…

R语言VRPM包绘制多种模型的彩色列线图

列线图&#xff0c;又称诺莫图&#xff08;Nomogram&#xff09;&#xff0c;它是建立在回归分析的基础上&#xff0c;使用多个临床指标或者生物属性&#xff0c;然后采用带有分数高低的线段&#xff0c;从而达到设置的目的&#xff1a;基于多个变量的值预测一定的临床结局或者…

免费畅享,打破写作瓶颈:星火写作助手覆盖全面,助你轻松创作

啰嗦几句 最近年终岁末&#xff0c;公司的各种文案各种总结&#xff0c;写得人是头晕脑胀&#xff0c;所以好多小伙伴最近在求智能写作的软件&#xff0c;最好是ChatGPT。 ChatGPT是国外产品&#xff0c;在国内并不能访问。而就智能写作来说&#xff0c;我们何必舍近求远呢&am…

1.新建项目

愿你出走半生,归来仍是少年&#xff01; 环境&#xff1a;.NET 7、MAUI 1.新建项目 打开VS2022,点击“创建新项目”。 新建项目 2.选择项目类型 在搜索框输入“Maui”&#xff0c;选择“NET MAUI应用”&#xff0c;配置项目名称、保存地址等&#xff0c;并选择框架版本。 项目…

精准监测,守护城市脉搏:管网压力、流量监测设备

在繁忙的城市中&#xff0c;每一个管道都如同城市的血脉&#xff0c;承载着重要的使命。为了确保城市的正常运行&#xff0c;我们提供精准的管网压力、流量监测设备&#xff0c;用科技守护城市的脉搏。 我们的设备采用最新的技术&#xff0c;可以实时监测管网的压力和流量&…

Spring Cloud Validation 使用正则表达式校验

----不支持中文的例子 Schema(description "商品名称") Pattern(regexp "^[^\u4E00-\u9FA5]*$", message "商品名称不支持中文") Size(max64,message"商品名称最大支持64个字符") private String goodsName; --支持 中英文和数…

【11.PWM捕获】蓝桥杯嵌入式一周拿奖速成系列

系列文章目录 蓝桥杯嵌入式系列文章目录(更多此系列文章可见) PWM捕获 系列文章目录一、STM32CUBEMX配置二、项目代码1.mian.c --> HAL_TIM_IC_CatureCallback 总结 一、STM32CUBEMX配置 STM32CUBEMX PA15 ->TIM2_CH1; PB4-> TIM3_CH1 预分频设置为79,自动重装载设置…

HTML实战

HTML实战 标题 标题排版 img标签路径书写的两种方式&#xff1a; 绝对路径 绝对磁盘路径&#xff1a;C:\User…绝对网络路径&#xff1a;https://i2.sinaimg.cn/dy/deco/2012/0613/yocc20120613img01/news_logo.png 相对路径 ./ : 当前目录 ../ &#xff1a; 上一级目录宽…

Spring基于dynamic-datasource实现MySQL多数据源

目录 多数据源实现 引入依赖 yml配置文件 业务代码 案例演示 多数据源实现 引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>dynamicdatasourcespringbootstarter</artifactId><version>3.5.0</version> &…

Programming Abstractions in C阅读笔记:p248-p253

《Programming Abstractions in C》学习第69天&#xff0c;p248-p253总结&#xff0c;总计6页。 一、技术总结 “A generalized program for two-player games”如标题所示&#xff0c;该小节强调要学会从一个复杂的程序中抽象出通用的内容——这也是本书的主旨——“Program…

Android 写入 csv 乱码,设置UTF-8的流也不行

需要先设置一下头&#xff1a; BufferedSink writer Okio.buffer(Okio.sink(csvFile)).write(new byte[]{(byte) 0xEF, (byte) 0xBB, (byte) 0xBF});然后就可以写了&#xff1a; writer.writeUtf8("ID,IP,设备类型,IMSI,IMEI,供应商,信号值,接收时间"); writer.wr…

Linux快速入门

目录 一. Linux的结构目录 1.1 Linux的目录结构 1.2 常用的目录介绍 二. 常用命令 # 与 $ 提示的区别 查看ip地址&#xff1a;ifconfig su&#xff1a;切换用户 cd 目录查看 查看文件内容 创建目录及文件 复制和移动 其他 tar which whereis find chmod 三. vim一般使用 四…

C4.5决策树的基本建模流程

C4.5决策树的基本建模流程 作为ID3算法的升级版&#xff0c;C4.5在三个方面对ID3进行了优化&#xff1a; &#xff08;1&#xff09;它引入了信息值&#xff08;information value&#xff09;的概念来修正信息熵的计算结果&#xff0c;以抑制ID3更偏向于选择具有更多分类水平…

<C++>STL->vector

vector的介绍 vector的使用文档 vector是一个可改变数组大小的序列容器vector和数组一样采取连续的空间存放数据&#xff0c;可以使用方括号访问vector的元素&#xff0c;和数组一样高效。但是vector的大小可以动态增长&#xff0c;而数组不行实际上vector内部使用一个动态分…

OpenSSL library错误

问题&#xff1a;OpenSSL library错误 报错&#xff1a;./configure: error: SSL modules require the OpenSSL library. You can either do not enable the module or install the OpenSSL library into the system, or build the OpenSSL library statically from the sourc…

redis—Set集合

目录 前言 1.常见命令 2.使用场景 前言 集合类型也是保存多个字符串类型的元素的&#xff0c;但和列表类型不同的是&#xff0c;集合中1)元素之间是无序的2)元素不允许重复&#xff0c;如图2-24所示。一个集合中最多可以存储22 - 1个元素。Redis 除了支持集合内的增删查改操…

前端 .then 返回有数据但是return 不出来 ,并 解决处理后的 Promise下的Object

解决方法就是&#xff1a;async await async声明方法为异步方法&#xff0c;await等待异步操作执行完。 &#xff08;async函数return的是Promise&#xff0c;await Promise后得到Object&#xff09; 注意的是&#xff0c;异步方法返回值为peomise<>&#xff0c;接收时需…

【计算机网络】【练习题】【新加坡南洋理工大学】【Computer Control Network】

说明&#xff1a; 仅供学习使用。 一、题目描述 该题目描述一个网络中传播时延&#xff08;Transmission Delay&#xff09;的例子。题目如下&#xff1a; 二、问题解答&#xff08;个人&#xff09; 笔者第3问采用均值不等式求解。标答中采用求导数的方法求极值。似乎均值…

学术精选,EI检索2024年计算机应用系统与微芯片技术国际会议

2024年计算机应用系统与微芯片技术国际会议(ICCASMT 2024) 2024 International Conference on Computer Application Systems and Microchip Technology(ICCASMT 2024) 数据库&#xff1a;EI,CPCI,CNKI,Google Scholar等检索 一、【会议简介】 &#x1f514; ​2024年计算机应用…