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

一、EF框架的Database First开发模式(数据库优先)

Database First开发模式(数据库优先)

‌Database First‌是Entity Framework(EF)的三种开发模式之一,适用于在已有数据库的情况下进行开发。其核心思想是从现有数据库中逆向生成实体类和映射文件,然后在此基础上进行开发。

官方文档: 实体框架文档中心 | Microsoft Learn

功能介绍

如果已经拥有数据库,Visual Studio中内置的Entity Framework设计器可以自动生成一个数据模型,该模型由对应于现有数据库对象(如表和列)的类和属性组成。有关数据库结构,数据模型及映射之间的信息以XML格式存储在.edmx文件中。实体框架设计器提供了一个可视化界面,您可以使用它来显示和编辑.edmx文件。

搭建EF-Database First框架

注意: 搭建框架EF-Database First前需要先搭建sql数据库!!!

SQL Server—了解数据库和数据库的创建_sql standard database services-CSDN博客

https://blog.csdn.net/qq_3517289697/article/details/142500025

操作数据

一、添加

db.SaveChanges() : 将在此上下文中所做的所有更改保存到基础数据库,返回值是更新的数据数量。

/// <summary>
/// 添加
/// </summary>
static void Add()
{using (DbFirstEntities db = new DbFirstEntities()){// 方式一// db.Student.Add(new Student() {Nae = "赛罗",Age = 20,Address = "地球"});// 方式二db.Entry(new Student() { Nae = "刑天", Age = 18, Address = "外星" }).State = System.Data.Entity.EntityState.Added;int count=  db.SaveChanges(); // 将在此上下文中所做的所有更改保存到基础数据库if (count > 0) { Console.WriteLine("添加数据成功"+count); }}
}

二、删除

db.Student.Attach(); 将实体附加到对象管理器中

/// <summary>
/// 删除
/// </summary>
static void Delect()
{using (var db = new DbFirstEntities()){Student stu = new Student() { Id = 7}; // 方式一// db.Student.Attach(stu); // 将实体附加到对象管理器中// db.Student.Remove(stu);// 方式二db.Entry(stu).State = System.Data.Entity.EntityState.Deleted;db.SaveChanges(); // 将在此上下文中所做的所有更改保存到基础数据库}
}

三、修改
  • FirstOrDefault 是 LINQ 中的一个方法,它返回序列中的第一个元素,如果序列没有元素则返回类型的默认值。
  • Where是LINQ中的方法,具有筛选的作用。
/// <summary>
/// 修改
/// </summary>
static void Update()
{using (var db = new DbFirstEntities()){#region 方式一 官方推荐 -- 只会修改需要修改的字段Student stu = db.Student.Where(s=>s.Id == 1).FirstOrDefault(); // 返回的是Student的代理类(包装类)stu.Nae = "赵子龙(修改测试)"; // 到这一步时,包装类会给真实的类修改属性,并且会给他状态设置为已修改状态db.SaveChanges();#endregion#region 方式二 -- 会修改全部字段Student stu2 = db.Student.Where(s => s.Id == 2).FirstOrDefault(); // 返回的是Student的代理类(包装类)stu2.Age = 30;stu2.Nae = "张三(修改测试2)";db.Entry(stu2).State = System.Data.Entity.EntityState.Modified;db.SaveChanges();#endregion}
}

四、查询
 /// <summary>/// 查询/// </summary>static void Query(){using (DbFirstEntities db = new DbFirstEntities()){// 根据Idvar sut1 = db.Student.Find(1);Console.WriteLine(sut1.Nae);// 根据条件查询List<Student> query = (from u in db.Student where u.Age == 20 select u).ToList();query.ForEach(s => Console.Write(s.Nae+","));Console.WriteLine();// 查询所有var query2 = db.Student.ToList();}}

五、事务 批处理
/// <summary>
/// 事务-批处理
/// </summary>
static void AddBatch()
{using (DbFirstEntities db = new DbFirstEntities()){for (int i = 0; i < 5; i++){db.Student.Add(new Student() { Nae = "赛罗"+i, Age = 20, Address = "地球"+i });}int count = db.SaveChanges(); // SaveChanges会自动开启事务if (count > 0) { Console.WriteLine("添加数据成功"+count); }}}

六、分页查询
/// <summary>
/// 分页查询
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
static void PagingQuery(int pageIndex,int pageSize)
{using (DbFirstEntities db = new DbFirstEntities()){// 分页查询一定要排序var query = db.Student.OrderBy(s=>s.Id).Skip((pageIndex-1)*pageSize).Take(pageSize).ToList();foreach (var u in query){Console.Write(u.Nae+",");}Console.WriteLine();}
}

相关文章:

一、EF框架的Database First开发模式(数据库优先)

Database First开发模式(数据库优先) ‌Database First‌是Entity Framework&#xff08;EF&#xff09;的三种开发模式之一&#xff0c;适用于在已有数据库的情况下进行开发。其核心思想是从现有数据库中逆向生成实体类和映射文件&#xff0c;然后在此基础上进行开发。 官方…...

Datawhale AI冬令营(第二期)动手学AI Agent task2--学Prompt工程,优化Agent效果

目录 如何写好Prompt&#xff1f; 工具包神器1&#xff1a;Prompt框架——CO-STAR 框架 工具包神器2&#xff1a;Prompt结构优化 工具包神器3&#xff1a;引入案例 案例&#xff1a;构建虚拟女友小冰 1. 按照 CO-STAR框架 梳理目标 2. 撰写Prompt 3. 制作对话生成应用&…...

Go IO之文件处理,TCPUDP讲解

文章目录 1 文件处理1.1 打开和关闭文件1.2 读取文件1.2.1 简单示例1.2.2 中文乱码1.2.2.1 bufio1.2.2.2 ioutil 1.3 写入文件1.3.1 Write 和 WriteString1.3.2 fmt.Fprintln1.3.2.1 写入文件1.3.2.2 写入标准输出 1.3.3 bufio.NewWriter1.3.4 ioutil.WriteFile 2 TCP&UDP2…...

[卫星遥感] 解密卫星目标跟踪:挑战与突破的深度剖析

目录 [卫星遥感] 解密卫星目标跟踪&#xff1a;挑战与突破的深度剖析 1. 卫星目标跟踪的核心挑战 1.1 目标的高速与不确定性 1.2 卫星传感器的局限性 1.3 数据处理与融合问题 1.4 大尺度与实时性要求 2. 当前卫星目标跟踪的主流技术 2.1 卡尔曼滤波&#xff08;Kalman …...

U盘提示格式化?原因、恢复方案与预防措施全解析

一、U盘提示格式化现象概述 在日常使用U盘的过程中&#xff0c;我们有时会遇到一个令人头疼的问题——U盘插入电脑后&#xff0c;系统却弹出一个提示框&#xff0c;告知我们U盘需要格式化才能访问。这个提示往往伴随着数据的潜在丢失风险&#xff0c;让我们不禁为之心焦。U盘提…...

Vuex中dispatch的用法

在 Vuex 中&#xff0c;dispatch 是用于触发 actions 的方法&#xff0c;它的主要作用是调用一个 action 并可以传递一些参数。以下是关于 dispatch 的详细解释&#xff1a; 基本语法 dispatch(type, payload)type&#xff1a;要调用的 action 的名称&#xff0c;它是一个字符…...

Agent系列:AppAgent v2-屏幕智能Agent(详解版)

引言 简介 方法 Agent 框架 Agent 交互 探索阶段 部署阶段 文档生成 高级功能 实验结果 总结 局限性 未来工作 1. 引言 大语言模型&#xff08;LLM&#xff09;如 ChatGPT 和 GPT-4 显著提升了自然语言处理能力&#xff0c;并且推动了智能体在自主决策中的应用。…...

Word如何插入图片并移动到某个位置

Word如何插入图片并移动到某一个位置 新建word→插入→图片 选择合适的位置→选择图片→打开 点击图片→布局选项→选择文字环绕下的任意一个→固定在页面上 点击图片就可以将图片移动到任意位置...

[CTF/网络安全] 攻防世界 upload1 解题详析

姿势 在txt中写入一句话木马<?php eval($_POST[qiu]);?> 回显如下&#xff1a; 查看源代码&#xff1a; Array.prototype.contains function (obj) { var i this.length; while (i--) { if (this[i] obj) { return true; } } return false; } function …...

golang:微服务架构下的日志追踪系统(二)

背景 在使用Gin框架进行服务开发时&#xff0c;我们遇到了一个日志记录的问题。由于Gin的上下文&#xff08;*gin.Context&#xff09;实现了context.Context接口&#xff0c;在调用日志记录器的Info、Warn、Error等方法时&#xff0c;直接传递Gin的上下文通常不会导致编译错误…...

单片机的存储器类型

单片机&#xff08;Microcontroller Unit, MCU&#xff09;是一种将计算机的主要部分集成在一个芯片上的微型计算机。它集成了处理器(CPU)、存储器、输入输出接口等必要的功能模块&#xff0c;广泛应用于各种嵌入式系统中。单片机的存储器结构对于理解和使用单片机至关重要&…...

深入剖析MySQL数据库架构:核心组件、存储引擎与优化策略(一)

sql语句分为两大类&#xff1a;查询&#xff08;select&#xff09;、增删改----修改&#xff08;update&#xff09; select语句的执行流程 执行sql语句的流程&#xff1a;连接数据库、缓存查询、解析器、优化器、执行器、存储引擎操作数据 客户端&#xff1a;图形界面工具…...

java常见的面试题

目录 一、 spring的配置文件的哪四处? 1.数据源&#xff08;Data Source&#xff09;配置 2.事务管理器&#xff08;Transaction Manager&#xff09;配置 3. 扫描组件&#xff08;Component Scanning&#xff09;配置 4. AOP&#xff08;面向切面编程&#xff09;配置&…...

2025吉林大学软件学院研究生人工智能原理真题

选择题 5题共10分 5.以下模型不需要训练过程的是&#xff1f; A.支持向量机 B.决策树 C.KNN近邻算法 D.卷积神经网络 简答题 4题35分 1.大模型是否已经通过图灵测试 2.三个近二十年来的机器学习模型和应用案例 3.LDA原理和算法流程 4.CNN原理和算法流程 证明题 谓词逻辑15…...

Qt判别不同平台操作系统调用相应动态库读取RFID

本示例使用的读卡器&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b8jdyXi&ftt&id562957272162 #include <QDebug> #include "mainwindow.h" #include "./ui_mainwindow.h" #include "QLibrary"…...

智慧工地系统:建筑施工智能化管理的全新模式

智慧工地概述 智慧工地是将互联网的理念和和物联网的技术引入建筑工地&#xff0c;依托物联网、互联网、大数据、5G技术&#xff0c;建立云端数据平台&#xff0c;形成大数据的业务体系&#xff0c;打通一线操作与远程监管的链条&#xff0c;实现劳务、安全、环境、材料等各个…...

js将object整个实体对象作为参数传递

①将object实体转化成json字符串传递&#xff1a; JSON.stringify(obj) ②将json字符串转化成JSON对象值&#xff1a;JSON.parse(json) 实际应用&#xff1a; <div id"div_notice" stylefont-size:14px; width:100%; height:200px; overflow-y:auto;></di…...

shell的循环结构

1、思维导图 2、定义一个find函数&#xff0c;查找ubuntu和root的gid并使用变量接收结果 #!/bin/bash #第二题查找gid并返回结果 find() {u_gidid -g ubuntur_gidid -g rootecho "root-gid$r_gid"echo "ubuntu-gid$u_gid" } ret$(find) echo $ret3、定义一…...

STM32-笔记29-蓝牙遥控插座项目

一、实验前期准备 手机通过蓝牙模块远程遥控风扇。&#xff08;插座的原理就是继电器&#xff0c;所以控制继电器就是控制插座电源&#xff09; 二、项目实现 复制项目文件夹32-蓝牙模块实现&#xff0c;重命名33-蓝牙遥控插座项目 找到一个继电器项目&#xff0c;把继电器复…...

计算机网络复习(习题)

术语辨析 数据链路层 该层在两个通信实体之间传送以帧为单位的数据&#xff0c;通过差错控制方法,使有差错的物理线路变成无差错数据链路。 网络层 负责使分组以适当的路径通过通信子网的层次。 运输层 负责向两台主机中进程之间的通信提供通用的数据传输服务的层次。 应用层…...

webserver的http实现

1、用了状态机&#xff0c;为什么要用状态机&#xff1f; 在逻辑处理模块中&#xff0c;响应的http请求采用主从状态机完成&#xff0c; 传统的控制流程都是按照顺序执行的&#xff0c;状态机能够处理任意顺序的事件&#xff0c;并能提供有意义的响应--即使这些事件发生的顺序和…...

C语言----指针

目录 1.概念 2.格式 3.指针操作符 4.初始化 1. 将普通变量的地址赋值给指针变量 a. 将数组的首地址赋值给指针变量 b. 将指针变量里面保存的地址赋值给另一个指针变量 5.指针运算 5.1算术运算 5.2 关系运算 指针的大小 总结&#xff1a; 段错误 指针修饰 1. con…...

Elasticsearch与数据库数据一致性:最佳实践与解决方案

在现代应用程序中&#xff0c;Elasticsearch&#xff08;ES&#xff09;作为一个高效的分布式搜索引擎&#xff0c;常常与数据库一同使用&#xff0c;以提供强大的搜索、分析和数据可视化功能。然而&#xff0c;数据库和Elasticsearch之间的同步与一致性常常成为一个挑战。如何…...

C# 基本语法

C# 基本语法 介绍 C#&#xff08;读作 "C sharp"&#xff09;是一种现代的、面向对象的编程语言&#xff0c;由微软开发&#xff0c;并在2000年首次发布。它是.NET框架的一部分&#xff0c;被广泛用于开发各种类型的应用程序&#xff0c;包括桌面应用、Web应用、移…...

CDGA|浅析自动化对数据治理的深远影响

在数字化时代&#xff0c;数据治理已成为企业管理的核心议题之一。随着数据量的快速增长和复杂性的不断提升&#xff0c;传统的手工数据管理方式已难以满足企业的需求。而自动化技术的引入&#xff0c;为数据治理带来了新的动力&#xff0c;正在逐步改变数据治理的面貌。 自动化…...

【机器学习】【朴素贝叶斯分类器】从理论到实践:朴素贝叶斯分类器在垃圾短信过滤中的应用

&#x1f31f; 关于我 &#x1f31f; 大家好呀&#xff01;&#x1f44b; 我是一名大三在读学生&#xff0c;目前对人工智能领域充满了浓厚的兴趣&#xff0c;尤其是机器学习、深度学习和自然语言处理这些酷炫的技术&#xff01;&#x1f916;&#x1f4bb; 平时我喜欢动手做实…...

小程序租赁系统的优势与应用探索

内容概要 小程序租赁系统&#xff0c;听起来很高大上&#xff0c;但实际上它比你想象的要实用得多&#xff01;设想一下&#xff0c;几乎所有的租赁需求都能通过手机轻松解决。这种系统的便捷性体现在让用户随时随地都能发起租赁请求&#xff0c;而不再受制于传统繁琐的手续。…...

汇编环境搭建

学习视频 将MASM所在目录 指定为C盘...

ubuntu24.04使用open-vm-tools无法在主机和虚拟机之间拖拽文件夹

最近安装了vmware用ubuntu24.04作为虚拟机 然后发现无法在主机和虚拟机之间复制粘贴 然后安装了 sudo apt-get install open-vm-tools-desktop重启虚拟机&#xff0c;发现可以复制粘贴文字&#xff0c;但是文件和文件夹仍然不行 搜索发现是Ubuntu&#xff08;22.04&#xff0…...

C++软件设计模式之模板方法模式

模板方法模式是面向对象软件设计模式之一&#xff0c;其主要意图是在一个方法中定义一个算法的骨架&#xff0c;而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。 动机 在软件开发中&#xff0c;常常会遇到这样的情…...

20241231 机器学习ML -(2)KNN(scikitlearn)

1. build DKTree 递推创建Tree&#xff1b;当前维度找中位数分割 数据集 left set&#xff0c;Node(mid), right set. * 循环维度&#xff08;当log(Nsample)>featureSize) 2. DKTree KNN search * 理论部分向量几何有介绍。 每个维度列中&#xff0c;中位数对应的数据点…...

Prometheus之终极指南(The Ultimate Guide to Prometheus)

Prometheus之终极指南 Prometheus 彻底改变了我们在现代 DevOps 生态系统中监控基础设施、应用程序和服务的方式。它不仅仅是一个工具&#xff1b;它是一个由指标收集、告警和实时监控组成的生态系统&#xff0c;受到 Uber、Google 和 SoundCloud 等组织的信任。在本文中&…...

如何使用Python调用淘宝api接口获取商品详情信息?

使用 Python 调用淘宝 API 接口获取商品详情信息&#xff0c;可按照以下步骤进行&#xff1a; 注册并获取 API 密钥 访问淘宝api文档&#xff0c;点击 “立即测试” 按钮&#xff0c;按照提示完成注册流程。注册成功后&#xff0c;登录测试平台&#xff0c;进入 “控制台” 页面…...

ubuntu 22下解决Unment dependencies问题

问题现象 在使用apt安装包的时候&#xff0c;出现如下错误&#xff1a; 解决方案 第一步 sudo apt-get -f install sudo apt-get update sudo apt-get upgrade第二步 sudo apt-get update sudo apt-get clean sudo apt-get autoremove第三步 sudo apt --fix-broken inst…...

leetcode 热题100(155. 最小栈)multiset c++

链接&#xff1a;155. 最小栈 - 力扣&#xff08;LeetCode&#xff09; 设计一个支持 push &#xff0c;pop &#xff0c;top 操作&#xff0c;并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。…...

某小程序sign签名参数逆向分析

文章目录 1. 写在前面2. 接口分析3. 分析还原 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…...

阿里云redis内存优化——PCP数据清理

在阿里云安装了一个redis节点&#xff0c;今天使用时忽然想着点击了一下分析内存。好家伙&#xff0c;居然崩出了一个30多M的块出来。问题是我本地安装的redis没有这个啊&#xff0c;怎么奇怪冒出这个来了。 本着把系统用干榨尽的态度&#xff0c;研究了下这个问题的来源。网上…...

YOLOv10-1.1部分代码阅读笔记-head.py

head.py ultralytics\nn\modules\head.py 目录 head.py 1.所需的库和模块 2.class Detect(nn.Module): 3.class Segment(Detect): 4.class OBB(Detect): 5.class Pose(Detect): 6.class Classify(nn.Module): 7.class WorldDetect(Detect): 8.class RTDETRDec…...

java开发中注解汇总​​

注解作用位置注意mybatis Data Getter Setter ToString EqualsAndHashCode AllArgsConstructor NoArgsConstructor Data 代替&#xff1a;无参构造&#xff0c;get&#xff0c;set&#xff0c;toString&#xff0c;hashCode&#xff0c;equals Getter Setter 可放在类和方法上&…...

Java开发 PDF文件生成方案

业务需求背景 业务端需要能够将考试答卷内容按指定格式呈现并导出为pdf格式进行存档&#xff0c;作为紧急需求插入。导出内容存在样式复杂性&#xff0c;包括特定的字体&#xff08;中文&#xff09;、字号、颜色&#xff0c;页面得有页眉、页码&#xff0c;数据需要进行表格聚…...

Python机器学习笔记(十七、分箱、离散化、线性模型与树)

数据表示的最佳方法&#xff1a;取决于数据的语义&#xff0c;所使用的模型种类。 线性模型与基于树的模型&#xff08;决策树、梯度提升树和随机森林&#xff09;是两种成员很多同时又非常常用的模 型&#xff0c;它们在处理不同的特征表示时就具有非常不同的性质。我们使用w…...

[极客大挑战 2019]Http 1

进入环境&#xff1a; 检查源码发现有一个链接&#xff0c;但是这里没有绑定&#xff0c;需要手动跳转&#xff0c;打开后&#xff0c;发现提示&#xff1a; 这里就是需要我们从https://Sycsecret.buuoj.cn来访问它 因此我们抓包&#xff0c;使用referer&#xff1a;服务器伪造…...

最近学习shader的一些总结

旨在总结最近学习shader过程中一些关键要素&#xff0c;强化下记忆&#xff0c;如果有错误也烦请指出。 1.Properties 可调节变量,用于定义从外部传入到内部的变量, 以及外部通过访问这些变量名, 可以获取这些变量的值 其中定义时指定的类型, 在后文中类型不一定相同(基本不…...

庐山派K230学习日记1 从点灯到吃灰

1 简介​ 庐山派以K230为主控芯片&#xff0c;支持三路摄像头同时输入&#xff0c;典型网络下的推理能力可达K210的13.7倍&#xff08;算力约为6TOPS&#xff09;。支持CanMV&#xff0c;可作为AI与边缘计算平台 K230简介 K230芯片集成了两颗RISC-V处理器核心&#xff0c;双核…...

在Swagger(现称为OpenAPI)中各类@api之间的区别

在Swagger&#xff08;现称为OpenAPI&#xff09;中&#xff0c;ApiOperation 是用来描述单个API操作的注解。除此之外&#xff0c;Swagger还提供了其他一些类似的注解&#xff0c;它们用于不同层次或目的来增强API文档的详细程度和可读性。以下是这些注解及其之间的区别&#…...

【网络协议】开放式最短路径优先协议OSPF详解(二)

前言 第一部分&#xff1a;【网络协议】开放式最短路径优先协议OSPF详解&#xff08;一&#xff09; 在第一部分中&#xff0c;我们了解了链路状态路由协议并讨论了 OSPF 的工作原理&#xff0c;同时学习了如何配置 OSPF。在本章的第二部分中&#xff0c;我们将进一步探讨 OS…...

windows文件夹自定义右键调用powershell完成7zip加密打包

准备powershell脚本 2. regedit的路径是&#xff1a;计算机\HKEY_CLASSES_ROOT\Directory\shell\&#xff0c;在此项目下新增子项目diy_command\command&#xff0c;command的数据值为powershell D:\windowsProjects\directory_diy.ps1 %1 效果&#xff0c;点击后进入和power…...

MySQL 入门教程

MySQL是最流行的关系型数据库管理系统&#xff0c;在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System&#xff1a;关系数据库管理系统)应用软件之一。 在本教程中&#xff0c;会让大家快速掌握MySQL的基本知识&#xff0c;并轻松使用MySQL数据库。 什么…...

BOOST 库在机器视觉中的应用及示例代码分析

一、引言 机器视觉是一门让计算机模拟人类视觉功能&#xff0c;对图像或视频数据进行理解、分析和决策的学科领域。在机器视觉的开发过程中&#xff0c;常常需要高效处理各种数据结构、进行数值计算、实现多线程并行处理以及运用优秀的算法框架等。BOOST 库作为一个功能强大、…...

第二十六天 自然语言处理(NLP)词嵌入(Word2Vec、GloVe)

自然语言处理&#xff08;NLP&#xff09;中的词嵌入&#xff08;Word2Vec、GloVe&#xff09;技术&#xff0c;是NLP领域的重要组成部分&#xff0c;它们为词汇提供了高维空间到低维向量的映射&#xff0c;使得语义相似的词汇在向量空间中的距离更近。以下是对这些技术的详细解…...