当前位置: 首页 > news >正文

WPF 使用 DI EF CORE SQLITE

WPF 使用 DI EF CORE SQLITE

1.安装 nuget包

<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.4" />

2.创建DbContext的实现类,创建有参构造函数

  public XXContext(DbContextOptions<XXXContext> options) : base(options){}

不创建有参构造函数会注入会报下面的错误

ArgumentException: 'AddDbContext' was called with configuration, but the context type 'XXContext' only declares a parameterless constructor. This means that the configuration passed to 'AddDbContext' will never be used. If configuration is passed to 'AddDbContext', then 'XXContext' should declare a constructor that accepts a DbContextOptions<XXContext> and must pass it to the base constructor for DbContext.

3.appsettings.json 配置文件中增加配置项

{"ConnectionStrings": {"XXContextSQLite": "Data Source=XX.db"}}

4.在主机配置中增加配置

    private static readonly IHost _host = Host.CreateDefaultBuilder()//.ConfigureLogging(config => { config.AddConsole(); }).ConfigureServices((context, services) =>{services.AddSingleton<INavigationService, NavigationService>();services.AddSingleton<MainWindow>();services.AddSingleton<MainWindowViewModel>();services.AddDbContext<XXContext>(options =>options.UseSqlite(context.Configuration.GetConnectionString("XXContextSQLite")));}).Build();

5.生成数据库

主机启动后执行 context.Database.EnsureCreated();

会创建配置文件中配置的数据库

 _host.Start();using (var scope = _host.Services.CreateScope()){var services = scope.ServiceProvider;var context = services.GetRequiredService<XXContext>();context.Database.EnsureCreated();// DbInitializer.Initialize(context);}

6.种子数据

在DbContext 实现类中重写 OnModelCreating 方法

 protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<Channel>().HasData(new Channel { ID = 1, ChanelNum = "D1", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 2, ChanelNum = "D2", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 3, ChanelNum = "D3", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 4, ChanelNum = "D4", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 5, ChanelNum = "D5", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 6, ChanelNum = "D6", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 7, ChanelNum = "D7", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 8, ChanelNum = "D8", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 9, ChanelNum = "D9", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 10, ChanelNum = "D10", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 11, ChanelNum = "D11", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 12, ChanelNum = "D12", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 13, ChanelNum = "D13", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 14, ChanelNum = "D14", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 15, ChanelNum = "D15", ChannelName = String.Empty, CreateTime = DateTime.Now },new Channel { ID = 16, ChanelNum = "D16", ChannelName = String.Empty, CreateTime = DateTime.Now });}

参考

ASP.NET Core 中的 Razor Pages 和 Entity Framework Core - 第 1 个教程(共 8 个) | Microsoft Learn

ASP.NET Core 中的 Razor Pages 和 Entity Framework Core - 第 1 个教程(共 8 个) | Microsoft Learn

相关文章:

WPF 使用 DI EF CORE SQLITE

WPF 使用 DI EF CORE SQLITE 1.安装 nuget包 <PackageReference Include"Microsoft.EntityFrameworkCore.Sqlite" Version"9.0.4" />2.创建DbContext的实现类&#xff0c;创建有参构造函数 public XXContext(DbContextOptions<XXXContext> o…...

探索鸿蒙沉浸式:打造无界交互体验

一、鸿蒙沉浸式简介 在鸿蒙系统中&#xff0c;沉浸式是一种极具特色的设计理念&#xff0c;它致力于让用户在使用应用时能够全身心投入到内容本身&#xff0c;而尽可能减少被系统界面元素的干扰。通常来说&#xff0c;就是将应用的内容区巧妙地延伸到状态栏和导航栏所在的界面…...

Linux红帽:RHCSA认证知识讲解(十 三)在serverb上破解root密码

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;十 三&#xff09;在serverb上破解root密码 前言操作步骤 前言 在红帽 Linux 系统的管理工作中&#xff0c;系统管理员可能会遇到需要重置 root 密码的情况。本文将详细介绍如何通过救援模式进入系统并重新设置 root 密码。…...

【网络安全】谁入侵了我的调制解调器?(一)

文章目录 我被黑了159.65.76.209,你是谁?黑客攻击黑客?交出证据三年后我被黑了 两年前,在我家里使用家庭网络远程办公时,遇到了一件非常诡异的事情。当时,我正在利用一个“盲 XXE 漏洞”,这个漏洞需要借助一个外部 HTTP 服务器来“走私”文件。为了实现这一点,我在 AW…...

阿里一面:Nacos配置中心交互模型是 push 还是 pull ?(原理+源码分析)

对于Nacos大家应该都不太陌生&#xff0c;出身阿里名声在外&#xff0c;能做动态服务发现、配置管理&#xff0c;非常好用的一个工具。然而这样的技术用的人越多面试被问的概率也就越大&#xff0c;如果只停留在使用层面&#xff0c;那面试可能要吃大亏。 比如我们今天要讨论的…...

MySQL 慢查询日志深入分析与工具实战(mysqldumpslow pt-query-digest)

&#x1f3af; 学习目标 • ✅ 熟悉慢查询日志结构与核心字段 • ✅ 掌握日志开启与 SQL 记录机制 • ✅ 使用 pt-query-digest 工具进行分析 • ✅ 解读分析结果并提出优化建议 &#x1f4c2; 基本概念 项目 内容说明 功能 记录执行时间超过阈值的 SQL 启动参数…...

JVM:垃圾回收

一、垃圾回收概述 &#xff08;1&#xff09;垃圾回收主要解决的问题 内存溢出&#xff1a;当程序在运行过程中&#xff0c;所需的内存超出了 JVM 被分配到的内存空间时&#xff0c;就会发生内存溢出。垃圾回收会将不再被引用的对象进行回收&#xff0c;释放内存空间&#xf…...

与AI深度融合的Go开发框架sponge,解决使用cursor、trae等AI辅助编程工具开发项目时的部分痛点

摘要 AI 编程助手在近几年快速发展&#xff0c;帮助开发者提升了开发效率。然而&#xff0c;通用 AI 工具往往难以精准落地到具体业务与框架中。本文介绍了一款与 Go 框架深度融合的 AI 编程工具 —— sponge AI 助手。它不仅理解框架的结构&#xff0c;还能按照标准化流程自动…...

《AI大模型应知应会100篇》第21篇:Prompt设计原则:让大模型精准理解你的需求

第21篇&#xff1a;Prompt设计原则&#xff1a;让大模型精准理解你的需求 摘要 在与大模型交互时&#xff0c;如何高效地表达需求是决定输出质量的关键。本文将系统介绍高效Prompt设计的核心原则和方法论&#xff0c;并通过实战代码案例详细解释每个核心知识点&#xff0c;帮助…...

【更新完毕】2025泰迪杯数据挖掘竞赛A题数学建模思路代码文章教学:竞赛论文初步筛选系统

完整内容请看文末最后的推广群 基于自然语言处理的竞赛论文初步筛选系统 基于多模态分析的竞赛论文自动筛选与重复检测模型 摘要 随着大学生竞赛规模的不断扩大&#xff0c;参赛论文的数量激增&#xff0c;传统的人工筛选方法面临着工作量大、效率低且容易出错的问题。因此&…...

[Windows] 电脑自动备份插入的U盘数据

[Windows] 电脑自动备份U盘数据 链接&#xff1a;https://pan.xunlei.com/s/VONyazSEIqhnzZCHRlio9Vw2A1?pwdcmhc# [Windows] 电脑自动备份插入的U盘数据...

《JVM考古现场(二十一):奇点黎明·在事件视界编译时空曲率》

目录 楔子&#xff1a;事件视界警报 上卷时空曲率引擎 第一章&#xff1a;volatile场方程重构 第二章&#xff1a;synchronized黑洞能层 番外篇&#xff1a;时空涟漪观测站 中卷量子逃逸分析 第三章&#xff1a;柯西视界稳定性证明 第四章&#xff1a;白洞负熵连接 实战…...

list的一些常用接口

其实list的接口和前面的string和vector基本都是一样的&#xff0c;用法也基本类似&#xff0c;我们还是挑几个讲讲吧。 一.常用的接口 1.1 push_back 图中是一个空参构造加上一个push_back的使用&#xff0c;这两个接口的使用还是很简单的&#xff0c;看一下即可。下面是迭代器…...

芯洲SCT2434AQFPAR:3.6V-36V Vin, 3.5A, 高效率同步降压DCDC转换器

特性&#xff1a; AEC-Q100合格&#xff0c;结果如下&#xff1a;-器件温度等级1&#xff1a;-40C至125C环境工作温度范围宽输入电压范围&#xff1a;3.6V-36V持续输出电流3.5A 1V1%反馈参考电压集成60mΩ高侧功率MOSFET和36mΩ低侧功率MOSFET轻载PSM工作模式在睡眠模式下具有…...

单例模式:懒汉和饿汉

目录 一、关于设计模式 二、单例模式是什么 2.1 饿汉模式 2.2 懒汉模式 三、单例模式和多线程 3.1 饿汉模式 3.2 懒汉模式 一、关于设计模式 单例模式是一种设计模式&#xff0c;说它之前先来聊聊设计模式是什么。 设计模式&#xff0c;类似于于棋谱&#xff08;大佬把…...

第八节:React HooksReact 18+新特性-React Server Components (RSC) 工作原理

• 与SSR区别&#xff1a;零客户端JS、服务端数据直出 • 搭配Next.js 14使用场景 React Server Components (RSC) 工作原理及 Next.js 14 应用场景解析 一、RSC 核心工作原理 React Server Components (RSC) 是 React 18 引入的颠覆性特性&#xff0c;其设计目标是 服务端与…...

Spark-SQL核心编程3

数据加载与保存 通用方式&#xff1a; SparkSQL 提供了通用的保存数据和数据加载的方式。这里的通用指的是使用相同的API&#xff0c;根据不同的参数读取和保存不同格式的数据&#xff0c;SparkSQL 默认读取和保存的文件格式为parquet 数据加载方法&#xff1a; spark.read.lo…...

利用XShell 创建隧道(tunnel)在本地可视化远程服务器上的Visdom

1. 创建隧道 打开Xshell&#xff0c;选择你想要操作的终端&#xff0c;单击右键 -> 选择属性 打开属性对话框后&#xff0c;单击添加按钮。 在弹出的对话框中&#xff0c;先填写自己本地的浏览器的地址以及对应的端口号。然后呢&#xff0c;再填写autod远程服务器的地址和…...

React 高级特性与最佳实践

在掌握了 React 的基础知识后&#xff0c;我们可以进一步探索 React 的高级特性和最佳实践。这些特性将帮助你构建更高效、可维护和可扩展的 React 应用。本文重点介绍 Hooks、Context、Refs 和高阶组件等核心高级特性。 1. Hooks&#xff1a;函数组件的强大工具 Hooks 是 Rea…...

考研数据结构之图(一)(包含真题及解析)

考研数据结构之图的存储与基本操作&#xff1a;邻接矩阵、邻接表、十字链表、邻接多重表 图&#xff08;Graph&#xff09;是数据结构中的重要非线性结构&#xff0c;广泛应用于网络路由、社交关系分析等领域。本文将详细讲解图的四种主要存储方式——邻接矩阵法、邻接表法、十…...

Qt QML实现Windows桌面颜色提取器

前言 实现一个简单的小工具&#xff0c;使用Qt QML实现Windows桌面颜色提取器&#xff0c;实时显示鼠标移动位置的颜色值&#xff0c;包括十六进制值和RGB值。该功能在实际应用中比较常见&#xff0c;比如截图的时候&#xff0c;鼠标移动就会在鼠标位置实时显示坐标和颜色值&a…...

2025 年网络安全的挑战与机遇

2024 年是网络安全领域风云变幻的一年。从备受瞩目的勒索软件攻击所带来的影响&#xff0c;到人工智能工具日益商品化&#xff0c;挑战不断增加。 关键基础设施的漏洞变得极为明显&#xff0c;身份盗窃次数也达到了前所未有的程度。然而&#xff0c;在这一片混乱之中&#xff…...

Vue 3 中 ref和reactive的详细使用场景

一、核心区别 特性refreactive数据类型基本类型 对象/数组&#xff08;自动解包&#xff09;仅对象/数组响应式原理通过 .value 触发响应直接代理对象模板中使用自动解包&#xff08;无需 .value&#xff09;直接访问属性解构/传递保持响应性需用 toRefs 保持响应性 二、使用…...

react使用createFromIconfontCN,自定义iconfont 图标

记录reactantdesign项目中使用createFromIconfontCN&#xff0c;自定义iconfont 图标 效果图&#xff1a; import { createFromIconfontCN } from ant-design/icons;const MyIcon createFromIconfontCN({scriptUrl: //at.alicdn.com/t/font_8d5l8fzk5b87iudi.js, // 在 icon…...

危化品经营单位安全生产管理人员备考要点

危化品经营单位安全生产管理人员备考要点 &#x1f4cc; 考试核心内容 ✅ 必考法规&#xff1a; 《危险化学品安全管理条例》重点条款&#xff08;如经营许可条件&#xff09; GB 18218-2018《重大危险源辨识》新标准 安全生产法律责任&#xff08;罚款金额/刑事责任&…...

音频炼金术:Threejs 让 3D 场景「听」起来更真实

在 Three.js 中允许在场景中添加声音&#xff0c;将声音与 3D 对象关联&#xff0c;实现更丰富的交互体验。 Audio Three.js 中的Audio对象用于表示音频源&#xff0c;它是一个THREE.Object3D的子类&#xff0c;用于控制音频播放、暂停、是否循环等设置的对象&#xff0c;可以…...

【C++】Stack和Queue的底层封装和实现

目录 stack容器适配器stack的模拟实现 queue的模拟实现deque了解deque的结构deque的管理方式和遍历元素方式deque的缺陷为啥库里面的stack和queue使用deque end stack 容器适配器 Stack可以封装成前面三个变量的形式&#xff0c;但是这里我们提出一个概念叫容器适配器&#xf…...

Vue3 SSR 工程化实践:日常工作中的性能优化与实战技巧

一、流式渲染与分块传输&#xff08;面向性能的关键优化&#xff09; 1.1 流式响应基础实现 // Node.js Express 示例&#xff08;Vite SSR同理&#xff09;import { renderToWebStream } from vue/server-rendererapp.get(/, async (req, res) > { res.setHeader(Conten…...

【Python进阶】字符串操作全解与高效应用

目录 前言&#xff1a;技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块技术选型对比 二、实战演示环境配置要求核心代码实现&#xff08;10个案例&#xff09;案例1&#xff1a;基础操作案例2&#xff1a;高效格式化…...

LeetCode[28]找出字符串中第一个匹配项的下标(KMP版本)

思路&#xff1a; 一开始我使用暴力过的&#xff0c;但是感觉还是不完美&#xff0c;想学习一下KMP的写法&#xff0c;所以这篇笔记就来了&#xff0c;首先KMP算法就要先维护一个最长相等前后缀的一个数组&#xff08;统称前缀表&#xff09;&#xff0c;那么这个数组为什么能找…...

Cesium实现雨、闪电、雪、雾天气效果

基于 Cesium 的三维地理信息场景&#xff0c;集成了天气效果后处理、3D 模型加载、水域渲染等功能。以下是详细功能总结&#xff1a; 1. 场景初始化与基础配置 三维地球初始化 创建 Cesium Viewer 实例&#xff0c;隐藏默认控件&#xff08;时间轴、动画控件等&#xff09;&…...

上门送水小程序区域代理模块框架设计

一、逻辑分析 代理申请流程&#xff1a; 潜在代理商通过小程序提交代理申请&#xff0c;需要填写个人或企业基本信息、联系方式、期望代理区域等。系统收到申请后&#xff0c;进行初步审核&#xff0c;检查信息的完整性和合规性。运营人员进行人工审核&#xff0c;根据公司政策…...

GIS开发笔记(6)结合osg及osgEarth实现半球形区域绘制

一、实现效果 输入中心点坐标及半径&#xff0c;绘制半球形区域&#xff0c;地下部分不显示。 二、实现原理 根据中心点及半径绘制半球形区域&#xff0c;将其挂接到地球节点。 三、参考代码 void GlobeWidget::drawSphericalRegion(osg::Vec3d point,double radius) {// 使…...

UE5在场景3D物体上播放本地视频(带声音)

UE5在场景3D物体上播放本地视频&#xff08;带声音&#xff09; 0.在Map中创建一个立方体,调整大小看起来像屏幕一样 1.创建文件夹Movies在根目录下 2.把准备的视频复制到Movies文件夹下 3.把Movies文件夹下的视频拖入到UE自己创建的文件夹下&#xff0c;此时会有个文件媒体源…...

安装部署RabbitMQ

一、RabbitMQ安装部署 1、下载epel源 2、安装RabbitMQ 3、启动RabbitMQ web管理界面 启用插件 rabbitmq数据目录 创建rabbitmq用户 设置为管理员角色 给用户赋予权限 4、访问rabbitmq...

STM32启动流程详解

STM32启动流程详解 本文档详细介绍STM32微控制器从上电到main函数执行的完整启动流程。 1. 上电与复位过程 当STM32芯片上电或复位时&#xff0c;硬件会执行以下步骤&#xff1a; 上电复位(POR)/低电平复位(PDR): 芯片接通电源或NRST引脚置低时触发初始PC值设置: 程序计数器…...

【正点原子STM32MP257连载】第四章 ATK-DLMP257B功能测试——CPU温度CPU主频

1&#xff09;实验平台&#xff1a;正点原子ATK-DLMP257B开发板 2&#xff09;浏览产品&#xff1a;https://www.alientek.com/Product_Details/135.html 3&#xff09;全套实验源码手册视频下载&#xff1a;正点原子资料下载中心 第四章 ATK-DLMP257B功能测试——CPU主频&…...

LVDS系列8:Xilinx 7系可编程输入延迟(一)

在解析LVDS信号时&#xff0c;十分重要的一环就是LVDS输入信号线在经过PCB输入到FPGA中后&#xff0c;本来该严格对齐的信号线会出现时延&#xff0c;所以需要在FPGA内部对其进行延时对齐后再进行解析。 Xilinx 7系器件中用于输入信号延时的组件为IDELAYE2可编程原语&#xff0…...

iotdb时序数据库使用

iotdb https://github.com/apache/iotdb.git 安装maven3.9.6以上版本执行编译 iotdb启动&#xff0c;使用安装包sbin目录下的start-standalone.bat sbin\start-standalone.bat 执行报错如果是内存问题&#xff0c;可以在对应的node配置中修改&#xff0c;如conf\datanode-ev…...

【Caddy】:现代化、自动 HTTPS 的 Web 服务器新星

&#x1f680; Caddy&#xff1a;现代化、自动 HTTPS 的 Web 服务器新星&#xff01; 在构建和部署 Web 应用时&#xff0c;你可能听说过或用过如 Nginx、Apache 等经典的 Web 服务器。但在今天&#xff0c;有一个越来越受欢迎的新选择——Caddy。 本文将带你认识 Caddy&…...

用 DeepSeek 精准解析,PDF 一键转电子书!

经常需要阅读大量的 PDF 文档&#xff0c;但在移动设备上阅读 PDF 通常体验极差。屏幕小、排版固定&#xff0c;需要不断放大缩小&#xff0c;眼睛容易疲劳&#xff0c;长时间阅读简直是一种折磨。 虽有不少 PDF 转换工具&#xff0c;但对扫描书籍支持不佳&#xff0c;经常丢失…...

【AIoT】智能硬件GPIO通信详解(二)

前言 上一篇我们深入解析了智能硬件GPIO通信原理(传送门:【AIoT】智能硬件GPIO通信详解(一))。接下来,我们将结合无人售货机控制场景,通过具体案例进一步剖析物联网底层通信机制的实际应用。 在智能零售领域,无人售货机通过AI技术升级为智能柜,其设备控制的底层通信…...

Mac OS系统下kernel_task占用大量CPU资源导致系统卡顿

CPU负载突然飙升&#xff0c;如截图&#xff1a; 根本原因&#xff0c;大家从各种博主上已知晓&#xff0c;现在提供自己的解决办法&#xff0c;亲测有效 一、设置开机自动禁用温度管理守护进程 1.创建脚本文件 mkdir -p ~/Scripts touch ~/Scripts/disable_thermald.sh …...

镜舟科技助力某大型电网企业破解数据架构升级难题,打造国产化湖仓标杆

在 “十四五” 规划全面推进国产化替代的背景下&#xff0c;某大型电网企业联合镜舟科技与腾讯云&#xff0c;基于全球领先的开源分析型数据库 StarRocks 及腾讯 TBDS 大数据平台&#xff0c;构建电力行业国产化湖仓一体架构。该项目实现 PB 级电力数据的统一管理&#xff0c;为…...

Linux内核内存管理单元 详解Linux 内核伙伴系统(Buddy System)的快速路径分配函数get_page_from_freelist

一、函数核心作用 get_page_from_freelist 是 Linux 内核伙伴系统&#xff08;Buddy System&#xff09;的快速路径分配函数&#xff0c;负责从指定的内存区域&#xff08;Zone&#xff09;中高效分配连续的物理内存页。其核心逻辑是遍历允许的 Zone 列表&#xff0c;检查水位…...

网络原理 - 初识网络 2

目录 OSI 七层协议 TCP / IP 五层模型 网络设备所在分层 网络分层对应 封装和分用&#xff08;网络传输数据过程中&#xff0c;最核心的流程&#xff09; 用一个具体例子来梳理以下封装和分用的过程 封装 1. 应用层&#xff08;应用程序&#xff09; -- QQ 2. 传输层 …...

如何利用GM DC Monitor快速监控一台网络类设备

GM DC Monitor v2.0在网络类设备监控的效率非常高&#xff01; 如果您需要管理运维大量的网络类设备&#xff0c;GM DC Monitor是个不错的选择。 如果您具备一定的采集脚本编写能力&#xff0c;可以在平台的定制属于自己的监控模板&#xff01; 1&#xff09;首先建立数据中…...

类和对象终

一、初始化列表 再谈构造函数 我们之前实现构造函数的时候&#xff0c;初始化成员变量在函数体内赋值的&#xff0c;构造函数还有一种初始化方式&#xff0c;就是初始化列表 我们先实现一个栈来举例&#xff1a; // 实现一个栈 typedef int DataType; class Stack { public:…...

教程:批量提取图片pdf固定位置文字然后保存为新的文件名,基于Python和阿里云的实现方案

一、项目背景 在实际工作和生活中,存在大量需要对图片或 PDF 进行批量处理的场景。例如,在档案管理中,工作人员可能会扫描大量文件,生成图片或 PDF 格式的档案资料。这些资料通常包含特定位置的关键信息,如文件编号、日期等。通过批量提取这些关键信息并将其作为文件名,…...

JVM:堆、方法区

一、堆 概念&#xff1a;堆用于存储对象和数组&#xff0c;主要分为新生代和老年代&#xff0c;新生代又细分为伊甸园区、幸存者 0 区&#xff08;S0&#xff09;和幸存者 1 区&#xff08;S1&#xff09;内存设置&#xff1a;可用 -Xmx 和 -Xms 设置堆内存大小&#xff0c;-X…...