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

.NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。

更新数据

第一种:
先从数据库中取出数据,然后再更新字段。效率较低,需要2次数据库操作;
Entities:就是EF实体数据模型
using (var db = new Entities())
{
var data = db.Member.Find(5);
data.Name = “new name”;
db.SaveChanges();
}
实际生成的SQL语句
select * from Member where ID=5
update Member set Name = ‘new name’ where ID=5

第二种:
根据主键更新某个字段。如下虽然定义的变量里有password,但是没有设置ismodified=true,所以在savechanges时只会更新name的值
using (var db = new Entities())
{
var data = new Member() { ID = 5, Name = “aa”, Password = “aa” };
//禁止修改Member表数据,
db.Entry(data).State = EntityState.Unchanged;// 或db.Member.Attach(data);
//只允许修改Name
db.Entry(data).Property(“Name”).IsModified = true;
db.SaveChanges();
}
生成的SQL:
update Member set Name=‘aa’ where ID=5

第三种:
根据主键更新所有字段,如下虽然未定义password,但到数据库中会更新为null
using (var db = new ScratchDB2Entities())
{
var data = new Member() { ID = 5, Name = “aa” };
//Member所有字段都修改。
db.Entry(data).State = EntityState.Modified;
db.SaveChanges();
}
生成的SQL:
update Member set Name=‘aa’,Password=null where ID=5

增加数据

单条记录添加
1、public void AddRegion()
{
using(Northwind db = new Northwind())
{
Region region = new Region();
region.RegionID = 5;
region.RegionDescription = “青岛”;
db.Region.Add(region);
db.SaveChanges();
}
}
2、public void AddRegion()
{
using (Northwind db = new Northwind())
{
Region region = new Region();
region.RegionID = 6;
region.RegionDescription = “济南”;
//EntityState 枚举类型 Modified、Added、Unchanged
db.Entry(region).State = System.Data.Entity.EntityState.Added;
db.SaveChanges();
}
}

批量增加
第一种方式:使用泛型
public void AddRange()
{
using (Northwind db = new Northwind())
{
List regions = new List();
regions.Add(new Region { RegionID = 6, RegionDescription = “济南” });
regions.Add(new Region { RegionID = 7, RegionDescription = “合肥” });
regions.Add(new Region { RegionID = 8, RegionDescription = “天津” });
db.Region.AddRange(regions);
Response.Write(db.SaveChanges());
}
}
第二种方式:循环实体
public void AddRange()
{
using(Northwind db = new Northwind())
{
for (int i = 10; i < 20; i++)
{
Region region = new Region();
region.RegionID = i;
region.RegionDescription = $“第{i}条”;
db.Region.Add(region);
}
Response.Write(db.SaveChanges());
}
}

删除数据

在这里插入图片描述
第二,自己创建一个对象,然后附加,然后删除。

在这里插入图片描述
第三,自己创建对象,然后放入EF容器,然后删除。
在这里插入图片描述

相关文章:

  • 12c++呵呵老师【变量,定时器和事件】
  • 元宇宙地产演化史:从文本时代到区块链时代
  • Linux搭建开源企业云盘Seafile,私有文件同步云盘及基本使用
  • 【推荐系统】推荐系统基础算法-基于矩阵分解的推荐方法、隐语义模型
  • celery apply_async定时任务重复执行问题
  • 接口测试基本知识点
  • C++学习记录4
  • JSP企业内部交流系统myeclipse开发mysql数据库bs框架java编程jdbc
  • 关于获得淘宝商品评论的那些事
  • 资深工程师整理2022年最新面试题汇总
  • 打破程序员“中年危机”8年测试工程师经验之谈
  • 资深架构师必备知识:Netty+MySQL+并发+JVM+多线程
  • java移动端选课系统设计与实现服务器端计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  • hadoop historyserver启动,无法访问,查看报错等问题
  • Worthington公司刀豆蛋白A的特性及参考文献
  • 【笔记】你不知道的JS读书笔记——Promise
  • Debian下无root权限使用Python访问Oracle
  • Java的Interrupt与线程中断
  • Spring框架之我见(三)——IOC、AOP
  • 百度小程序遇到的问题
  • 高程读书笔记 第六章 面向对象程序设计
  • 聊聊flink的TableFactory
  • 一个完整Java Web项目背后的密码
  • 优秀架构师必须掌握的架构思维
  • 终端用户监控:真实用户监控还是模拟监控?
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 选择阿里云数据库HBase版十大理由
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • # 计算机视觉入门
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • ${ }的特别功能
  • (26)4.7 字符函数和字符串函数
  • (6)添加vue-cookie
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (生成器)yield与(迭代器)generator
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • @GetMapping和@RequestMapping的区别
  • [20171102]视图v$session中process字段含义
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [Angularjs]ng-select和ng-options
  • [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager失败
  • [Everyday Mathematics]20150130
  • [Excel VBA]单元格区域引用方式的小结
  • [git]git命令如何取消先前的配置
  • [hive] sql中distinct的用法和注意事项
  • [Java] 模拟Jdk 以及 CGLib 代理原理
  • [JS]JavaScript 简介
  • [Latex] \bibitem{} | .bbl 格式参考文献转换与获得
  • [NLP] 使用Llama.cpp和LangChain在CPU上使用大模型
  • [node]Node.js 模块系统
  • [POI2009]WIE-Hexer
  • [PyQt] Pycharm 配置 PyQt 开发环境