首页 > 其他分享 >【ORM】EF实用技巧集合

【ORM】EF实用技巧集合

时间:2022-10-17 23:23:05浏览次数:37  
标签:query2 实用技巧 SysDataDict BaseVersion EF ORM context var

1、延迟加载

    var query1 = _context.SysDataDict.Where(x => x.BaseVersion.Equals(0)).ToList();
    var query2 = _context.SysDataDict.Where(x => x.BaseVersion.Equals(0));
    Console.WriteLine("query1 count:"+ query1.Count);
    var a1 = new SysDataDict() { Id = 123, BaseIsDelete = 0, BaseCreatorId = 0, BaseModifierId = 0, BaseVersion = 0, DictType = "hah", DictSort = 1,BaseCreateTime=DateTime.Now,BaseModifyTime=DateTime.Now ,Remark=""};
    _context.SysDataDict.Add(a1);
    _context.SaveChanges();
    Console.WriteLine("query2 count:" + query2.ToList().Count);

2、默认筛选

modelBuilder.Entity<Table>.HasQueryFilter(x=>x.A2<5)

3、不映射字段

关键字[NotMapped] 

4、级联删除

.OnDelete(DeleteBehavior.ClientCascade)

5、并发冲突

默认乐观并发,上下文获取数据后,跟数据库是没有关系了 

IsRowVersion().IsConcurrencyToken();

6、批量删除

EF自带方法中,根据sqlserver跟踪可知,是一条条删除,在数据量比较大时,浪费数据库性能。

Nuget中获取包:EFCore.BulkExtensions

7、执行SQL

_context.Database.ExecuteSqlRaw() 

注意防注入,几种方式都可以防止注入

A、占位符

B、@占位符

C、$@ 

 

参考视频链接:https://www.bilibili.com/video/BV1bV411x7Y1

 

标签:query2,实用技巧,SysDataDict,BaseVersion,EF,ORM,context,var
From: https://www.cnblogs.com/sailing92/p/16801091.html

相关文章

  • 数据库新增表后,EF通过数据库更新模型后,在视图中已经新表,但在Model 中没有出现Mode实体
    新建表t_PtoductMini, 执行Scaffold-DbContext"DataSource=.;InitialCatalog=XXX;IntegratedSecurity=True"Microsoft.EntityFrameworkCore.SqlServer-OutputDirM......
  • dremio HomeFileSystemStoragePlugin简单介绍
    使用过dremio的同学应该了解dremio对于每个用户会支持一个@的导航(小房子标记)参考接口效果restapi请求的,会包含一个containerTypehome的就是HomeFileSystemStorage......
  • 面经:什么是Transformer位置编码?
     Datawhale干货 作者:陈安东,中央民族大学,Datawhale成员过去的几年里,Transformer大放异彩,在各个领域疯狂上分。它究竟是做什么,面试常考的Transformer位置编码暗藏什么玄机?本......
  • 原生js中offsetTop, offsetLeft与offsetParent的详细讲解
    简单说下:offsetTopoffsetTop:为只读属性。返回的是一个数字。它返回当前元素相对于其offsetParent元素的顶部内边距的距离。它等价于offsetTop==>元素到offsetPare......
  • Codeforces Global Round 23 -D.Paths on the Tree
    题意给定一个树,树上每个节点i有一个权值s[i]。一共有k条从1(一定是根节点)开始的简单路径。设i点有c条路径通过,则其总权值为c*s.现在在限制:如果p[u]=i,p[v]=i,则abs(c[u]......
  • ABAP SMARTFORMS和函数_1
                              自定义上传图片       ......
  • Codeforces Round #726 E1
    E1.EraseandExtend(EasyVersion)首先我们来证一个东西就是最优解一定由先删若干次然后一直copy而来而不会在中途再删一次因为在中途再删一次就证明这个后缀不如前......
  • makefile学习
    makefile书写规则TARGET...:PREREQUISITES...COMMANDTARGET:规则目标,可以是一个objectfile(目标文件),也可以是一个执行文件,还可以是一个标签(label)。PREREQUISITE......
  • Codeforces Round #828 (Div. 3)
    CodeforcesRound#828(Div.3)https://codeforces.com/contest/1744罚时爆炸的a~e1A.NumberReplacement数字一样的对应字母一定要一样#include<bits/stdc++.h>......
  • Codeforces Round #827 (Div. 4) 复盘+题解
    原比赛链接复盘:ABC签到,手速太慢了。D捣鼓了好久才想起来从更小的值域出发去做。E简单二分答案。然后就timeout了。D题搞错方向浪费太久时间了。F思维题,拐两个弯再$r......