C# EF 使用
WPF EF MySQL
| - - - | 版本 |
|---|---|
| .NET Framework | 4.7.2 |
| EntityFramework | 6.5.1 |
| MySql.Data.EntityFramework | 9.1.0 |
- 创建数据库 cc
- App.config
<connectionStrings><add name="MyDbContext" providerName="MySql.Data.MySqlClient" connectionString="server=127.0.0.1;port=3306;database=cc;user=root;password=123456;persistsecurityinfo = True;Character Set=utf8;" />
</connectionStrings>
<system.data><DbProviderFactories><remove invariant="MySql.Data.MySqlClient"/><add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=9.1.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/></DbProviderFactories>
</system.data>
- 测试
public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();try{using (var context = new MyDbContext()){ // 查询var entities = context.MyEntities.Where(e => e.Name == "example").ToList();// 添加var newEntity = new MyEntity { Name = "new example" };context.MyEntities.Add(newEntity);context.SaveChanges();// 更新//var existingEntity = context.MyEntities.Find(newEntity.Id);//existingEntity.Name = "updated example";//context.SaveChanges();// 删除// context.MyEntities.Remove(existingEntity);//context.SaveChanges();}}catch (Exception ex){var d = "";}}
}[DbConfigurationType(typeof(MySql.Data.EntityFramework.MySqlEFConfiguration))]
public class MyDbContext : DbContext
{public MyDbContext() : base("name=MyDbContext"){ } public DbSet<MyEntity> MyEntities { get; set; }
}[Table("my_table")]
public class MyEntity
{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int Id { get; set; }[Required][StringLength(100)]public string Name { get; set; }
}
- 打开 NuGet 包管理器控制台
Enable-Migrations -Force # 会在跟目录生成 Migrations\Configuration.cs
AutomaticMigrationsEnabled = true; # Configuration.cs 中修改
update-database -Force # 迁移
Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [<CommonParameters>]
ContextTypeName:项目继承自DBContext的类名字。
EnableAutomaticMigrations:开启自动迁移。
ProjectName:存放DBContext类的项目名称。
StartUpProjectName:解决方案中启动项目的名称,作用是调用该项目下的连接字符串。
ConnectionStringName:连接字符串名称Enable-Migrations -ContextTypeName "WpfApp2.MyDbContext" -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext" -Verbose -Force
update-database -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext" -Verbose -Force
WPF EF SQLServer
| - - - | 版本 |
|---|---|
| .NET Framework | 4.7.2 |
| EntityFramework | 6.5.1 |
- 创建数据库 cc
- App.config
<connectionStrings><add name="MyDbContext" providerName="System.Data.SqlClient" connectionString="data source=LAPTOP-EGHJ2RO7;initial catalog=t1;user id=sa;password=1234567;connection timeout=5" />
</connectionStrings>
- 测试
public partial class MainWindow : Window
{public MainWindow(){InitializeComponent();try{using (var context = new MyDbContext()){ // 查询var entities = context.MyEntities.Where(e => e.Name == "example").ToList();// 添加var newEntity = new MyEntity { Name = "new example" };context.MyEntities.Add(newEntity);context.SaveChanges();// 更新//var existingEntity = context.MyEntities.Find(newEntity.Id);//existingEntity.Name = "updated example";//context.SaveChanges();// 删除// context.MyEntities.Remove(existingEntity);//context.SaveChanges();}}catch (Exception ex){var d = "";}}
}public class MyDbContext : DbContext
{public MyDbContext() : base("name=MyDbContext"){ } public DbSet<MyEntity> MyEntities { get; set; }
}[Table("my_table")]
public class MyEntity
{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int Id { get; set; }[Required][StringLength(100)]public string Name { get; set; }
}
- 打开 NuGet 包管理器控制台
Enable-Migrations -Force # 会在跟目录生成 Migrations\Configuration.cs
AutomaticMigrationsEnabled = true; # Configuration.cs 中修改
update-database -Force # 迁移
Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConnectionStringName <String>] [-Force] [<CommonParameters>]
ContextTypeName:项目继承自DBContext的类名字。
EnableAutomaticMigrations:开启自动迁移。
ProjectName:存放DBContext类的项目名称。
StartUpProjectName:解决方案中启动项目的名称,作用是调用该项目下的连接字符串。
ConnectionStringName:连接字符串名称Enable-Migrations -ContextTypeName "WpfApp2.MyDbContext" -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext" -Verbose -Force
update-database -ProjectName "WpfApp2" -StartUpProjectName "WpfApp2" -ConnectionStringName "MyDbContext" -Verbose -Force
相关文章:
C# EF 使用
WPF EF MySQL - - -版本.NET Framework4.7.2EntityFramework6.5.1MySql.Data.EntityFramework9.1.0 创建数据库 ccApp.config <connectionStrings><add name"MyDbContext" providerName"MySql.Data.MySqlClient" connectionString"server…...
简介Voronoi图Voronoi Diagrams
这是计算机的经典算法。 问题引入 倘若一张大白纸上有很多三角点,掉进去一个五星点,问,哪个三角离着五星最近?简单,算距离呗,这个五星到其他所有三角点的距离,找到最小的那个就行。 若掉进去…...
硬件测试工程师之EMC项目-辐射抗扰度试验(RS)测试标准解析思维导图
1:链接上一篇文章 硬件测试工程师之EMC项目-电磁干扰-谐波测试标准解析 2:总结思维导图并进行深入解析EMC-辐射抗扰度测试项目 附上相关报告文档以及图片解析。 3:以下为思维导图大致展示,后续可可方便观看。如有需要也可以下载。 本期先…...
H265编码丢帧问题分析
问题 通过海思芯片编码后,将编码的数据通过UDP网口发送到UDP 服务端,UDP服务端收到后保存成文件。 保存的文件有时候用VLC软件可以打开。有时候不能打开,同时用Elecard HEVC Analyer工具打开,发现VLC不能打开时丢帧。如下图,实际为858帧,而此处只有846帧。 分析 UDP包…...
CentOS Linux教程(12)--常用编辑器
文章目录 1. 背景2. nano编辑器2.1 检查安装2.2 安装nano2.3 使用nano 3. emacs编辑器3.1 检查安装3.2 安装emacs 3.3 使用emacs 1. 背景 我们经常需要编辑文件内容,windows上这个工作可以用记事本来做。 linux上对应的,我们可以使用nano或者emacs编辑…...
【浏览器学习笔记】-- 浏览器检查jQuery是否加载
环境:最近做爬虫实验,需要用到上下文http数据请求,为了能够兼容上下文环境,因此采用就jQuery请求,请求前需要加查是否有JQuery加载成功。 浏览器F12,打开浏览器控制台,复制粘贴以下代码&#x…...
大模型的提示学习
文章目录 人工提示设计自动提示设计经过预训练、指令微调和人类对齐后,我们接下来讨论如何通过提示学习方法来有效地使用大语言模型解决实际任务。目前常用的方法是设计合适的提示(Prompting),通过自然语言接口与大模型进行交互。在现有研究中,任务提示的设计主要依靠人工…...
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
基于matlab-GUI的脉冲响应不变法实现音频滤波功能,输入加噪信号,通过巴特沃斯模拟滤波器脉冲响应不变法进行降噪。效果较好。程序已调通,可直接运行。 下载源程序请点链接:2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能…...
鸿蒙移动应用开发-------前篇
一. 鸿蒙的起源 2012年,华为公司开始规划自己的操作系统,名为’鸿蒙‘。 2018年8月24日,华为公司向国家知识产权商标局申请了’华为鸿蒙‘商标,注册公告日期是2019年5月14日,专用权限期是从2019年5月14日到2029年5月…...
ROS(Robot Operating System)中,编写一个记录机器人速度并将其转换成轨迹
在ROS(Robot Operating System)中,编写一个记录机器人速度并将其转换成轨迹的类涉及到几个步骤。以下是一个简单的示例,展示了如何创建这样一个类,并将其放置在一个自定义的命名空间中。这个类将订阅机器人的速度信息&…...
了解bootstrap改造asp.net core MVC的样式模板
我们都知道,在使用默认的asp.net core MVC模板建立项目的时候,里面的样式是已经事先被写好了的。一般来说都在css目录下的site.css和bootstrap.css及下面的bootstrap.min.css中。我们打开bootstrap这些样式文件,里面有大量的样式类的定义&…...
【C++】对左值引用右值引用的深入理解(右值引用与移动语义)
🌈 个人主页:谁在夜里看海. 🔥 个人专栏:《C系列》《Linux系列》 ⛰️ 天高地阔,欲往观之。 目录 前言:对引用的底层理解 一、左值与右值 提问:左值在左,右值在右?…...
寻找符合要求的最长子串
题目描述 给定一个字符串 s s s ,找出这样一个子串: 1)该子串中的任意一个字符最多出现2次; 2)该子串不包含指定某个字符; 请你找出满足该条件的最长子串的长度。 输入描述: 第一行为要求…...
【vim文本编辑器gcc编译器gdb调试器】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、vimvim安装vim常用快捷键vim使用vimtutor zh文档 二、gcc编译器安装gcc工具编译源代码 三、gdb调试器gdb安装gdb常用指令gdb简单上手使用gdb的单步调试功能 总结…...
解决使用Golang的email库发送qq邮件报错short response,错误类型为textproto.ProtocolError
问题阐述 使用email库发送QQ邮件,采用465端口: package mainimport ("fmt""net/smtp""github.com/jordan-wright/email" )func SendEmail(sendTo string, subject string, body string) (err error) {e : email.NewEmai…...
为什么说高级工程师研究的不仅是器件的稳态,模拟器件的开关过程
高级工程师研究器件的开关过程而不仅仅是稳态,主要有以下几个原因: 1. 动态性能优化:开关过程中的特性,如上升时间、下降时间、过冲、振铃等,直接影响系统的性能。了解和优化这些动态特性对于提高系统的速度、精度和稳…...
Matlab实现白鲸优化算法(BWO)求解路径规划问题
目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 白鲸优化算法(BWO)是一种受自然界白鲸捕食行为启发的新型优化算法,它通过模拟白鲸的群体捕猎策略和社会互动来探索问题的最优解。BWO因其强大的全局搜索能力和高效的局部搜索能…...
SQLserver索引的优化和使用
在SQL Server中,索引的优化和有效使用是提高查询性能的关键。以下是一些详细的步骤和最佳实践,帮助你优化和使用索引。 1. 理解索引类型 聚集索引(Clustered Index) 定义:表中数据的物理排序顺序与索引的逻辑顺序相…...
Linux 安装nacos
1.下载版本 https://github.com/alibaba/nacos/tags 2.解压压缩包,启动 (1)将压缩包放到/usr/local目录下,解压 tar -xvf nacos-server-2.0.0-BETA.tar.gz(2)删除压缩包 rm -f nacos-server-2.0.0-BETA.tar.gz(3) 找到nacos的mysql的数据库脚本,在数…...
水仙花判断
一个三位整数,如果满足条件:个位数的立方十位数立方百位数立方这个数,那么称之为“水仙花数” 编程判断一个三位整数是不是水仙花数。 输入格式: 输入一个三位整数 输出格式: 是则输出YES,不是输出 NO (注意是大写字母…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
