.net 6 引入EFCore

news/2024/10/30 9:22:14/

这里默认使用sql server数据库 DBFirst

nuget引入程序集

  • Microsoft.EntityFrameworkCore

  • Microsoft.EntityFrameworkCore.SqlServer

  • Microsoft.EntityFrameworkCore.Design

  • Microsoft.EntityFrameworkCore.Tools

  • Microsoft.Extensions.Logging.Console

执行脚本

设置DAL层项目为启动项

工具 - nuget包管理器 - 程序包管理器控制台

输入以下指令并执行(用来连接数据库,创建DBContext)

Scaffold-DbContext "Data Source=DESKTOP-440HAKQ;Initial Catalog=Factory;Persist Security Info=True;User ID=sa;Password=你的密码" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -ContextDir Models -Context FactoryDbContext -Force

如果修改数据库之后想同步Model,只需要再次执行该命令即可,不过这样会覆盖原有文件,注意重新修改DbContext

FactoryDbContext 类就是service层可以使用的db上下文

修改appsettings.json

ConnectionStrings": {"FactoryDBString": "Data Source=DESKTOP-440HAKQ;Initial Catalog=Test;Persist Security Info=True;User ID=sa;Password=你的密码"},

修改FactoryDbContext文件

public static readonly ILoggerFactory MyLoggerFactory = LoggerFactory.Create(builder => { builder.AddConsole(); });protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){if (!optionsBuilder.IsConfigured){//根据配置文件读取数据库连接IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();string factorySqlStr = configuration.GetConnectionString("FactoryDBString");//使用日志记录sql语句optionsBuilder.UseLoggerFactory(MyLoggerFactory).EnableSensitiveDataLogging().UseSqlServer(factorySqlStr);}}

Autofac注入dbcontext

program中注入

buider.RegisterType<CustomerDbContext>().As<DbContext>();


http://www.ppmy.cn/news/26915.html

相关文章

用Python搓一个黑洞

文章目录简介单位制观测绘图简介 黑洞图像大家都知道&#xff0c;毕竟前几年刚发布的时候曾火遍全网&#xff0c;甚至都做成表情包了。 问题在于&#xff0c;凭什么认为这就是黑洞的照片&#xff0c;而不是一个甜甜圈啥的给整模糊了得到的呢&#xff1f;有什么理论依据吗&…

Python列表list操作-遍历、查找、增加、删除、修改、排序

在使用列表的时候需要用到很多方法&#xff0c;例如遍历列表、查找元素、增加元素、删除元素、改变元素、插入元素、列表排序、逆序列表等操作。 1、遍历列表 遍历列表通常采用for循环的方式以及for循环和enumerate&#xff08;&#xff09;函数搭配的方式去实现。 1&#xff…

如何使用raw socket发送UDP报文

前面写的一篇《Linux下如何在数据链路层接收原始数据包》举了一个实例,使用raw socket接收UDP数据报,但是发送一个数据包比接收要复杂一些,本文以一个实例说明如何使用raw socket发送一个UDP报文。 1. 前言 阅读本文前可以考虑先阅读一下我的另外一篇文章《Linux下如何在数据…

Java 集合基础

文章目录一、集合概念二、ArrayList1. 构造方法和添加方法2. 常用方法三、案例演示1. 存储字符串并遍历2. 存储学生对象并遍历3. 键盘录入学生对象并遍历一、集合概念 编程的时候如果要存储多个数据&#xff0c;使用长度固定的数组存储格式&#xff0c;不一定满足我们的需要&a…

【Linux】环境变量,命令行参数,main函数三个参数保姆教学

目录 ☃️1.奇奇怪怪的现象和孤儿进程 ☃️2.环境变量 ☃️3.深刻理解main函数的前两个参数和命令行参数 ☃️1.奇奇怪怪的现象和孤儿进程 首先回顾一下之前我们学过的fork&#xff08;&#xff09;创建子进程 fork(void)的返回值有两种 注意fork&#xff08;&#xff09;头…

FreeRTOS与UCOSIII任务状态对比

FreeRTOS任务状态 1、运行态 正在运行的任务&#xff0c;正在使用处理器的任务。 单核处理器中任何时候都有且只有一个任务处于运行态。 2、就绪态 已经准备就绪&#xff08;非阻塞或挂起&#xff09;&#xff0c;可以立即运行但还没有运行的任务。 正在等待比自己高优先级…

设计模式浅谈

什么是设计模式 设计模式是一种软件设计的思想。是在软件开发过程中&#xff0c;经过验证的、用于解决在特定环境下重复出现的、特定问题的解决方案。 设计模式的设计原则 原文链接&#xff1a;https://blog.csdn.net/qq_43471489/article/details/124067150 设计原则 1、…

DP(2)--背包DP(0-1 背包,完全背包,多重背包)

滚动数组&#xff1a; 让数组滚动起来&#xff0c;每次都使用固定的几个存储空间&#xff0c;来达到压缩&#xff0c;节省存储空间的作用。 一般用于递推和动态规划中 一维数组 比如&#xff1a;求斐波那契数列第100项 long long arr[3]; arr[0] 1; arr[0] 1; for (int i 2…