EFCore对数据库增删改查
插入数据
1、只要操作模型类属性,就可以向数据库中增加数据,但是通过C#代码修改模型类中的数据只是修改了内存中的数据。对模型类做修改后,需要调用DbContext的异步方法。
SaveChangesAsync()把修改保存到数据库。也有同步的保存方法SaveChanges(),但是用EF Core都推荐用异步方法。异步知识点还欠缺的朋友可能需要去补一补。
2、EF Core默认会跟踪实体类对象以及DbSet的改变。
public class Program{static async Task Main(string[] args){//实例化上下文类 mdb 逻辑上的数据库using (MyDbContext mdb = new MyDbContext()){//在实例化实体类Books 给实体类的属性添加值Book book = new Book();book.bookname = "钢铁是怎样练成的";book.CreatName = DateTime.Now.ToString();book.DateTime = DateTime.Now;mdb.Books.Add(book);//把模型表book的对象加入到逻辑数据库中的Dbset<Books>逻辑表里面await mdb.SaveChangesAsync(); //Savechanges()方法相当与Update-Database}}}
查询数据
1、DbSet实现了IEnumerable<T>接口,因此可以对
DbSet实施Linq操作来进行数据查询。EF Core会把Linq操作编译转换为SQL语句。
这就实现了面向对象对数据库进行操作。
#region 查询数据//where可以查询范围的值 //var books = mdb.Books.Where(b => b.Id > 0);//foreach (var book in books)//{// Console.WriteLine(book.bookname);//}//single返回一个数据的对象 一条数据对象 可以准确的查询出精确的数据//var book = mdb.Books.Single(b => b.Id ==2);//Console.WriteLine(book.bookname);//orderby 排序//var books = mdb.Books.OrderBy(b=>b.Id);可以添加Where条件 列如:Where(b=>b.id<10)//foreach (var item in books)//{// Console.WriteLine(item.bookname);//}#endregion
修改数据
1、要对数据进行修改,首先需要把要修改的数据查询出来,然后再对查询出来的对象进行修改,然后再执行SaveChanges()保存修改。
有点繁琐,需要先用Single把数据对象查询出来
然后执行修改属性值通过SvaeChanges();方法更新
#region 修改数据var book = mdb.Books.Single(b=>b.bookname== "钢铁是怎样练成的");book.bookname = "我不想炼钢铁了";await mdb.SaveChangesAsync();//把修改的数据保存关系数据库#endregion
删除数据
1、删除也是先把要修改的数据查询出来,然后再调用DbContext的Remove方法把对象删除,然后再执行
SaveChanges(保存修改)。
#region 删除数据var book = mdb.Books.Single(b => b.Id==1);mdb.Remove(book);await mdb.SaveChangesAsync();//把删除的数据保存关系数据库#endregion
批量数据修改
1、目前批量修改、删除多条数据的方法。
局限性:性能低:杳出来,再一条条Update、Delete,而不能执行
#region 批量数据修改var books = mdb.Books.Where(b=>b.Id<10);foreach (var book in books){Console.WriteLine(book.bookname);// book.bookname = book.bookname + '的';}// await mdb.SaveChangesAsync();#endregion
EFCore对数据库增删改查相关推荐
- 常用的Mybatis-Plus方法,让你的数据库增删改查(CRUD)一键实现
常用的Mybatis-Plus方法,让你的数据库增删改查(CRUD)一键实现 以下方法全部亲测可用 //测试查找全部@Testpublic void testSelectAll(){List<U ...
- Mysql (一)Mysql 数据库增删改查
mysql数据库增删改查增:create database DBname charset gbk; 删:drop database DBname; 改:alter database DBname ch ...
- sql增删改查_快速搞定数据库增删改查|附思维导图
数据库学习,增删改查一直是测试工程师面试笔试的必考知识点,对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实. 下面是关 ...
- Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作
此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...
- php+mysql+into_PHP+Mysql 如何实现数据库增删改查
PHP+Mysql实现数据库增删改查的方法:1.创建入口文件[index.html]连接数据库.查询数据:2.点击增加按钮,通过[addnews.html]添加数据:3.点击删除按钮,通过服务端文件[ ...
- Java连接Mysql数据库增删改查实现
Java连接Mysql数据库增删改查实现 时间比较赶,我这里只实现查询,有时间再添加另外两个 难度 : ⭐⭐⭐(全星5颗星的情况下) 新建一个动态的网站工程, 把jar包全部复制进去,主要要那个mys ...
- flask对mysql数据库增删改查_Flask学习(三) - Flask-SQLAlchemy对数据库增删改查
Flask-SQLAlchemy对数据库增删改查 安装 pip install flask-sqlalchemy 具体不多说了,主要是对数据库进行简单的增删改查,上代码,看注释 @app.route( ...
- mysql 中caption_Django-Model操作数据库(增删改查、连表结构)(示例代码)
Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表 基本结构 from django.db importmodelsclassuserinfo(models ...
- java servlet dao_Java+MyEclipse+Tomcat 详解Servlet和DAO数据库增删改查操作(源码)
[实例简介] 该资源主要参考自己的博客http://blog.csdn.net/eastmount/article/details/45936121 讲诉Java+MyEclipse+Tomcat 详 ...
- mfc连接mysql增删改查_java实现mysql数据库增删改查
1.连接数据库: import java.sql.Connection; import java.sql.DriverManager; public class DBConnection { stat ...
最新文章
- 邓海建:让网约车成为智慧城市的“老司机”
- 运行android模拟器,emulator: ERROR: x86 emulation currently requires hardware acceleration!
- AFIO时钟何时开启
- bootstrap外不引用连接_网络编程Netty IoT百万长连接优化,万字长文精讲
- 手把手教你做用户画像:3种标签类型、8大系统模块
- 热血上头!程序员想拍桌子离职的1000个瞬间...
- 计算机帮教助教活动总结,【助教总结】_助教总结范文三篇
- 凸包练习: POJ 2187(JAVA)
- 吉林考生多少分能考上哈工大计算机专业,福建考生多少分能上哈工大?
- Linux 管道(pipe)原理及使用
- Vulnhub Typhoon-v1.02提权
- 陈小龙书pHP,PHP
- writev遇到非阻塞IO
- 温度测量基于c语言,基于PN结的温度测量系统设计论文(C语言)--189876772.doc
- Python - - 面向对象 - - 初始面向对象
- 何海涛算法面试题感悟之四:二元树…
- Oracle基础之保留字和关键字
- onLoad、onShow
- Android简单实用的交互动画库
- 【风电功率预测】麻雀算法优化LSSVM风电功率预测(多输入单输出)【含Matlab源码 1718期】