正文内容加载中...
posted @ 2022-05-19 23:28 算盘 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 乐观并发控制的原理Update T_Table set Owner = 新值 where Id = 1 and Owner = 旧值当Update的时候,如果数据库中的Owner值已经被其他操作者更新为了其他值了,那么where语句的值就会为false,因此这个Update语句影响了行数就是0,EF 阅读全文
posted @ 2022-05-07 21:17 算盘 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 并发控制的概念1、并发控制:避免多个用户同时操作资源造成的并发冲突问题。举例:统计点击量2、最好的解决方案:非数据库解决方案3、数据库层面的两种策略:悲观、乐观 1、悲观并发控制一般采用行锁、表锁等排他锁对资源进行锁定,确保同时只有一个使用者操作被锁定的资源 2、EFCore没有封装悲观并发控制的使 阅读全文
posted @ 2022-05-02 13:56 算盘 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 合并步骤: 1、进入要合并的分支(如开发分支合并到master,则进入master目录)git checkout mastergit pull 2、查看所有分支是否都pull下来了git branch -a 3、使用merge合并开发分支git merge 分支名 4、查看合并之后的状态git st 阅读全文
posted @ 2022-04-30 13:22 算盘 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1、全局查询筛选器:EF Core会自动将这个查询筛选器应用于涉及这个实体类型的所有LINQ查询2、场景:软删除、多租户 阅读全文
posted @ 2022-04-20 13:51 算盘 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 快照更改跟踪1、如果通过DbContext查询出来的对象只是用来展示不会发生状态改变,则可以使用AsNoTracking()来"禁用跟踪" 2、分别加AsNoTracking()和不加,分别查看一个对象修改后的EntityEntry信息 3、如果查询出来的对象不会被修改、删除等,那么查询是可以AsN 阅读全文
posted @ 2022-04-20 13:49 算盘 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 快照更改跟踪:首次跟踪一个实体的时候,EFCore会创建这个实体的快照。执行SaveChanges()等方法时,EFCore将会把存储的快照中的值与实体的当前值进行比较。 实体的状态已添加(Added):DbContext正在跟踪此实体,但数据库中尚不存在该实体 未改变(Unchanged):DbC 阅读全文
posted @ 2022-04-11 13:40 算盘 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 1、申请方式的不同。栈由系统自动分配,而堆是人为申请开辟; 2、申请大小的不同。栈获得的空间较小,而堆获得的空间较大; 3、申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢; 4、存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其 阅读全文
posted @ 2022-04-01 22:40 算盘 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 方式一:ToListAsync()、ToArrayAsync()。结果集不要太大方式二:await foreach(Book b in ctx.Books.AsAsyncEnumerable())不过,一般没必要这么做 阅读全文
posted @ 2022-03-26 14:41 算盘 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 对比1、DataReader:分批从数据库服务器读取数据。内存占用小、DB连接占用时间长2、DataTable:把所有数据都一次性从数据库服务器都加载到客户端内存中。内存占用大,节省DB连接 验证IQueryable用什么方式1、用insert into select 多插入一些数据,然后加上Del 阅读全文
posted @ 2022-03-23 17:49 算盘 阅读(17) 评论(0) 推荐(0) 编辑