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;可以实时监测管网的压力和流量&…

【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…

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内部使用一个动态分…

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年计算机应用…

JS之打地鼠案例

需要素材的同学可以私信我 效果图&#xff1a; 上代码&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title><style>* {margin: 0;padding: 0;}.box {position: relative;width: 320px;heigh…

数据结构之树

树 前面文章讲的线性表&#xff0c;不论数组还是链&#xff0c;都是“一对一”的关系&#xff0c;本文章节让我们来认识一下“一对多”关系的数据结构——树&#xff08;Tree&#xff09;。 树结构分为二叉树和三叉树等&#xff0c;如下图所示。常用的就是二叉树&#xff0c;因…

深度学习(5)--Keras实战

目录 一.Keras基础概念 二.如何跑通Keras项目 2.1.在cmd上跑通 2.2.在PyCharm上跑通 一.Keras基础概念 Keras是深度学习中的一个神经网络框架&#xff0c;是一个高级神经网络API&#xff0c;用Python编写&#xff0c;可以在TensorFlow&#xff0c;CNTK或Theano之上运行。 …