首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

02-EF Core笔记之保存数据

Core中,除了独立的模型外,还有与模型关联的数据,这部分数据通过独立模型添加到模型中,SaveChanges将会持久化到数据库中。...工作原理:每当在 SaveChanges 期间执行更新或删除操作,会将数据库上的并发令牌值与通过 EF Core 读取的原始值进行比较。如果一致则可以完成操作,如果不一致,则终止事务。...关系数据库上,EF Core 会对任何 UPDATE 或 DELETE 语句的 WHERE 子句中的并发令牌值进行检查。 执行这些语句后,EF Core 会读取受影响的行数。...如果未影响任何行,将检测到并发冲突,并且 EF Core引发 DbUpdateConcurrencyException。...检测到并发冲突后,EF Core引发DbUpdateConcurrencyException异常,该异常中提供了一些有用的参数来帮助我们解决冲突: “当前值”是应用程序尝试写入数据库的值。

1.7K40
您找到你想要的搜索结果了吗?
是的
没有找到

.net core web api + Autofac + EFCore 个人实践

不同,这篇文章重点在后台,.net core。...,如果是由我们业务代码主动引发的业务级别异常,也就是类型为自定义BusinessException,则直接设置相应json结果状态码及 错误信息为我们引发异常定义的状态码及错误信息;如果是框架或数据库操作失败引发的...老WebAPI中,是需要通过Route来设置,具体请求方法约束需要单独通过类似HttpGet、HttpPut等来约束,而.NET CORE中,可以合二为一,路由设置请求方法约束一起搞定。...new List()); } 典型的EF分页查询,先获取符合条件总记录数,然后排序并取指定页数据,没毛病。 日消费清单也类似,但关于月清单年清单,这里要多说下。..., CONVERT(CHAR(7), DATE, 120) MONTH, SUM(COST) COST FROM DAILY WHERE CONVERT(CHAR(7), DATE, 120) BETWEEN

1.4K40

浅析Entity Framework Core中的并发处理

即为数据增加一个版本标识,基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现.读取出数据,将此版本号一同读出,之后更新,对此版本号加一。...本篇就是讲解,如何在我们的Entity Framework Core中来使用自定义我们的并发策略 2.Entity Framework Core并发令牌 要使用Entity Framework Core...如果一个属性被配置为并发令牌,则EF将在保存这条记录,会检查没有其他用户修改过数据库中的这个属性的值。...2.1并发令牌EF中工作的原理 当我们配置User中的Name为令牌的时候,EF会将并发令牌包含在Where、Update或delete命令的子句中并检查受影响的行数来实现验证。...当我们配置好上面的并发令牌,EF执行SaveChanges()操作并产生并发的时候,我们会得到DbUpdateConcurrencyException的异常信息,(注意:不配置并发令牌,这个异常一般不会触发

2.7K90

Django 模型查询2.3

简介 查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集select语句等价,过滤器像wherelimit子句 接下来主要讨论如下知识点..."模型类.DoesNotExist"异常 如果多条被返回,会引发"模型类.MultipleObjectsReturned"异常 count():返回当前查询的总条数 first():返回第一个对象 last...():返回最后一个对象 exists():判断查询集中是否有数据,如果有则返回True 限制查询集 查询集返回列表,可以使用下标的方式进行限制,等同于sql中的limitoffset子句 注意:不支持负数索引...使用下标后返回一个新的查询集,不会立即执行查询 如果获取一个对象,直接使用[0],等同于[0:1].get(),但是如果没有数据,[0]引发IndexError异常,[0:1].get()引发DoesNotExist...异常 查询集的缓存 每个查询集都包含一个缓存来最小化对数据库的访问 新建的查询集中,缓存为空,首次对查询集求值,会发生数据库查询,django会将查询的结果存在查询集的缓存中,并返回请求的结果,接下来对查询集求值将重用缓存的结果

2.3K20

EF Core 完结篇

0.前言 《EF Core》实际上已经可以告一段落了,但是感觉还有一点点意犹未尽。所以决定分享一下,个人在实际开发中使用EF Core的一些经验使用的扩展包。 1....EF Core的异步操作 正如这小节题目所言,EF Core是支持异步操作的,但实际可用集中SaveChanges异步查询这两个方法上。...如果我们使用try/catch/finally进行捕获异常的时候,需要在finally里放资源释放的代码。如果资源得不到正确及时的释放会出现更多的问题。...EF Core的数据库访问插件 微软为SQLiteSQL Server提供了默认的数据库连接程序,其中 SQLite的是: Microsoft.EntityFrameworkCore.Sqlite SQL...EF Core的配件 EF 4的年代,EF本身不支持对批量数据的支持。后续慢慢增加了对数组的处理,包括增删。 但是随着时代的发展,数据量越来越大。所以仅仅是数组不能满足实际需求了。

1.1K10

MySQL外键约束使用

外键约束可以确保数据的完整性一致性,防止数据被删除或修改时发生错误。MySQL中,外键约束由FOREIGN KEY关键字REFERENCES子句定义。...如何创建外键约束MySQL中,创建外键约束需要以下步骤:第一步:创建主表从表外键约束通常涉及到两个表,一个主表一个从表。主表包含一个列或一组列,其值将在从表中进行比较。...FOREIGN KEY子句用于指定要添加外键约束的列,REFERENCES子句用于指定关联表列。如何使用外键约束一旦外键约束被创建,就可以使用它来确保数据的完整性一致性。...以下是如何使用外键约束的一些示例:插入数据:当向"orders"表中插入数据,如果在"customer_id"列中插入一个不存在于"customers"表中的值,则会引发外键约束错误。...row: a foreign key constraint fails删除数据:当从"customers"表中删除一行,如果在"orders"表中存在与该行相关联的"customer_id"值,则会引发外键约束错误

4K30

还在使用 SimpleDateFormat?你的项目崩没?

多线程情况下,会出现异常,想必有经验的小伙伴也遇到过。下面我们就来分析分析SimpleDateFormat为什么不安全?是怎么引发的?以及多线程下有那些SimpleDateFormat的解决方案?...多线程不安全原因 因为我们吧SimpleDateFormat定义为静态变量,那么多线程下SimpleDateFormat的实例就会被多个线程共享,B线程会读取到A线程的时间,就会出现时间差异其它各种问题...线程挂起,线程A继续走,calendar还会被继续使用(subFormat方法),而这时calendar用的是线程B设置的值了,而这就是引发问题的根源,出现时间不对,线程挂死等等。...解决方案 只需要的时候创建新实例,不用static修饰 public static String formatDate(Date date) throws ParseException { SimpleDateFormat...) { return formatter.format(date); } public static LocalDateTime parse2(String dateNow

42230

EF Core的增删改查

初始化 实际开发中,一般都是先设计好数据表再进行开发,所以很少用到EF Core的数据迁移功能。所以EF Core的初始化,一般也指的是EF Core上下文初始化。...DeleteBehavior的值起以下作用: 行为名称 对内存中的依赖项/子项的影响 对数据库中的依赖项/子项的影响 Cascade(默认) 删除实体 删除实体 ClientSetNull SaveChanges 引发异常...None SetNull 引发 SaveChanges SaveChanges 引发异常 Restrict None None 而对于数据的修改,EF Core的做法是通过监控实体的ChangeTracker...EF Core调用 ToList的时候,会将已调用的方法Linq转换成SQL语句,并正式向数据库发起查询。如果出现了Linq中调用三方方法或者自己写的工具方法的话,可能会提示不受支持。...数据访问系列,EF Core 篇即将到一段落。待EF Core篇完成后,将带领一起去探索 NhibernateDapper,SqlSugar这三个ORM框架。

3K20

还在使用SimpleDateFormat?你的项目崩没?

多线程情况下,会出现异常,想必有经验的小伙伴也遇到过。下面我们就来分析分析SimpleDateFormat为什么不安全?是怎么引发的?以及多线程下有那些SimpleDateFormat的解决方案?...三 多线程不安全原因 因为我们把SimpleDateFormat定义为静态变量,那么多线程下SimpleDateFormat的实例就会被多个线程共享,B线程会读取到A线程的时间,就会出现时间差异其它各种问题...线程挂起,线程A继续走,calendar还会被继续使用(subFormat方法),而这时calendar用的是线程B设置的值了,而这就是引发问题的根源,出现时间不对,线程挂死等等。...四 解决方案 只需要的时候创建新实例,不用static修饰 public static String formatDate(Date date) throws ParseException {...) { return formatter.format(date); } public static LocalDateTime parse2(String dateNow

41130

还在使用SimpleDateFormat?你的项目崩没?

多线程情况下,会出现异常,想必有经验的小伙伴也遇到过。下面我们就来分析分析SimpleDateFormat为什么不安全?是怎么引发的?以及多线程下有那些SimpleDateFormat的解决方案?...三 多线程不安全原因 因为我们把SimpleDateFormat定义为静态变量,那么多线程下SimpleDateFormat的实例就会被多个线程共享,B线程会读取到A线程的时间,就会出现时间差异其它各种问题...线程挂起,线程A继续走,calendar还会被继续使用(subFormat方法),而这时calendar用的是线程B设置的值了,而这就是引发问题的根源,出现时间不对,线程挂死等等。...四 解决方案 只需要的时候创建新实例,不用static修饰 public static String formatDate(Date date) throws ParseException {...) { return formatter.format(date); } public static LocalDateTime parse2(String dateNow)

43620

还在使用 SimpleDateFormat?你的项目崩没?

多线程情况下,会出现异常,想必有经验的小伙伴也遇到过。下面我们就来分析分析SimpleDateFormat为什么不安全?是怎么引发的?以及多线程下有那些SimpleDateFormat的解决方案?...多线程不安全原因 因为我们吧SimpleDateFormat定义为静态变量,那么多线程下SimpleDateFormat的实例就会被多个线程共享,B线程会读取到A线程的时间,就会出现时间差异其它各种问题...线程挂起,线程A继续走,calendar还会被继续使用(subFormat方法),而这时calendar用的是线程B设置的值了,而这就是引发问题的根源,出现时间不对,线程挂死等等。...解决方案 只需要的时候创建新实例,不用static修饰 copypublic static String formatDate(Date date) throws ParseException {...) { return formatter.format(date); } public static LocalDateTime parse2(String dateNow)

58720

浅析Entity Framework Core2.0的日志记录与动态查询条件

EF Core(2.事务与日志) 时过境迁..EF Core也更新到2.0了.....日志记录方面,有了比较大的变化..所以我觉得还是需要学习学习 正文 一、 Entity Framework Core2.0的日志记录 早在Entity Framework Core1.0 ,我们就使用相关的...Entity Framework Core2.0  估计是为了配合ASP.NET Core的日志.所以对这些接口进行了更进一步的包装,也弃用了一些接口类,如:IRelationalCommandBuilderFactory...这个库nuget中分了几个版本.所以.. 我们使用EF Core,所以需要引用它的 Microsoft.EntityFrameworkCore.DynamicLinq 这个库....EF core2.0已经完全可以用于生产环境了..虽然之前的线路图中答应的事情..比如更方便的映射..比如分组..比如拦截..都延期到了2.1版本..但是这些并不影响它的强大~..

1.4K60

ASP.NET MVC5+EF6+EasyUI 后台管理系统(21)-权限管理系统-跑通整个系统

这一节我们来跑通整个系统,验证的流程,通过AOP切入方式,访问方法之前,执行一个验证机制来判断是否有操作权限(如:增删改等) 原理:通过MVC自带筛选器,筛选器分解路由的Actioncontroller...IActionFilter 接口声明两个方法:OnActionExecuting OnActionExecuted。 OnActionExecuting 操作方法之前运行。...异常筛选器。 这些筛选器用于实现 IExceptionFilter,并在 ASP.NET MVC 管道执行期间引发了未处理的异常执行。 异常筛选器可用于执行诸如日志记录或显示错误页之类的任务。...EF中去,EF5.0将自动创建一个复杂的类型,大家可以打开来看下 创建一个权限的类permModel,我们将获取到的权限保存到这个类中去,这个类最终是一个一个的session转换而来的。...; 目前位置我们已经跑通了整个系统了,接下来就是自动化的用户角色之间的授权模块的制作了,能跑通,其他都是很简单了,对吧 这一章比较复杂,需要对AOP编程,MVC的筛选器,路由进行了解,才能读的比较

2.4K70

FMDB 使用注意点

例如,关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。   事务程序是两个概念。一般地讲,一个程序中包含多个事务。   事务的开始与结束可以由用户显式控制。...数据库中的插入操作是比较耗时的,假如我们一次性主线插入几百几千条数据,由于比较较慢就会造成主线程阻塞。那么这时候可以开启一个事物来进行操作。   ...事物完成,数据必须是一致的,也就是说,事物开始之前,数据存储中的数据处于一致状态。保证数据的无损。   ...BOOL deleteResult = [_dataBase executeUpdate:[NSString stringWithFormat:@"delete from sensorsAnalytics where...= [NSDate date]; NSString *currentTimeString = [formatter stringFromDate:datenow]; return currentTimeString

94130
领券