02-EF Core笔记之保存数据】的更多相关文章

EF Core通过ChangeTracker跟踪需要写入数据库的更改,当需要保存数据时,调用DbContext的SaveChanges方法完成保存. 基本的添加.更新.删除操作示例如下: using (var context = new BloggingContext()) { // seeding database context.Blogs.Add(new Blog { Url = "http://sample.com/blog" }); context.Blogs.Add(new…
1. 基本保存 每个DBContext实例都有一个ChangeTracker,负责跟踪需要写入数据库的更改.当实例发生更改时,更改会被记录在ChangeTracker中,在调用 SaveChanges 时被写入数据库. 1.1 添加数据 使用 DbSet.Add()添加实体类的新实例. 调用 SaveChanges() 时,数据将插入到数据库中. using (var context = new LibingContext()) { var role = new Role { RoleName…
What? 首先,说一下什么是EF Core中的Transaction Transaction允许以原子方式处理多个数据库操作,如果事务已提交,则所有操作都应用于数据库,如果事务回滚,则没有任何操作应用于数据库. 所谓原子方式 是指对数据库的每一个操作是对立开来的,但是多个操作能合成一个整体(个人理解). 当操作到某一步失败了,那么会触发事物的回滚,把前面成功的操作也进行撤销,为什么这一操作这么重要呢?我举个例子你就知道了 就那拿一行转账这件事情来说.正常的A给B转账X元有两步: 1. 从A的账…
EF Core使用Linq进行数据查询. 基本查询 微软提供了一百多个示例来演示查询,地址:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b 我们可以通过下面的代码进行简单的查询: //获取全部数据 var blogs = context.Blogs.ToList(); //获取单个实体 var blog = context.Blogs.Single(b => b.BlogId == 1); //筛选 var blogs = co…
需求:导入9999行数据时Dapper, Ef core, Freesql 谁的性能更优,是如何执行的,级联增加谁性能更佳. 确认方法:sql server 的 sys.dm_exec_query_stats SELECT TOP 1000 (select [text] from sys.dm_exec_sql_text(QS.sql_handle)) as '数据库语句', QS.execution_count AS '执行次数', QS.total_elapsed_time AS '耗时',…
1. 基本查询 1.1 加载全部数据 using System.Linq; using (var context = new LibingContext()) { var roles = context.Roles.ToList(); } 1.2 加载单个实体 using (var context = new LibingContext()) { ); } using (var context = new LibingContext()) { ); } 注:Find()根据主键值查询返回单个实体…
在上一篇文章中,我们比较出单表插入9999行数据,Dapper > EfCore > Freesql.在本文中,我们来看看级联插入 构建9999行数据 List<Entity> datas = new List<Entity>(); for (int i = 0; i < 9999; i++) { var item = new Entity { No = i + 1, Col1 = Guid.NewGuid().ToString("N"), C…
阅读本文大概需要 14 分钟. 原文:https://bit.ly/2C67m1C 作者:Jon P Smith 翻译:王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能会去除一些本人实在不知道如何组织但又不影响理解的句子. 这是深入理解 EF Core 系列的第二篇文章.第一篇是关于 EF Core 如何从数据库读取数据的:而这一篇是关于 EF Core 如何向数据库写入数据的.这是四种数据库操作 CRUD(新增.读取.更新和删除)中的 CUD 部分. 我假设你对…
原文:https://bit.ly/2Cy3J5f 作者:Jon P Smith 翻译:王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能会去除一些本人实在不知道如何组织但又不影响理解的句子. 这篇文章是关于如何使用 EF Core 实现软删除的,即表面上删除了数据,但数据并没有被物理删除,在需要的时候你还是可以把它读取出来的.软删除有很多好处,但也有一些值得注意的问题.这篇文章会教你使用 EF Core 实现一般的软删除和复杂的级联软删除.在此过程中,我还会介绍如…
ef core在针对mysql数据迁移的时候,有些时候没法迁移...有两种情况没法迁移,一种是因为efcore的bug问题导致没法迁移,这个在github上有个问题集,另外一种是对数据表进行较大幅度的变更,导致外键导航之类的变更较多,无法正常迁移,并且涉及到该表的迁移有多条. 然后我就自己琢磨,在不删除所有迁移记录的情况下怎么顺利把数据表更改掉,然后摸索了一阵,确实成功了,步骤如下. 1.先把表备份后,删除这个表.2. 在migration记录表中,涉及到该表的迁移全部删除.3. 删除迁移记录中…