当前位置: 首页 > news >正文

做自媒体挣钱的网站有哪些网页建设培训机构

做自媒体挣钱的网站有哪些,网页建设培训机构,黄骅港项目中标结果,wordpress主机有什么优在Entity Framework Core (EF Core)有许多新的功能#xff0c;最令人期待的功能之一就是批处理语句。那么批处理语句是什么呢#xff1f;批处理语句意味着它不会为每个插入/更新/删除语句发送单独的请求#xff0c;它将在数据库的单次请求中批量执行多个语句。在这篇文章中最令人期待的功能之一就是批处理语句。那么批处理语句是什么呢批处理语句意味着它不会为每个插入/更新/删除语句发送单独的请求它将在数据库的单次请求中批量执行多个语句。在这篇文章中让我们看看它是如何工作的并将结果与EF6进行比较。 EF Core将一次准备多个语句然后在单次请求中执行它们所以能提供了更好的性能和速度。让我们看看它是如何工作的。我们将借助SQL Server Profiler来捕获实际生成和执行的查询。 插入操作 首先我们来看看插入语句的行为以下代码在category表中添加3个记录 using (var dataContext new SampleDBContext()) {dataContext.Categories.Add(new Category() {CategoryID 1,CategoryName Clothing});dataContext.Categories.Add(new Category() {CategoryID 2,CategoryName Footwear});dataContext.Categories.Add(new Category() {CategoryID 3,CategoryName Accessories});dataContext.SaveChanges(); } 当执行SaveChanges()时以下是生成语句通过 SQL Server Profiler 捕获: exec sp_executesql NSET NOCOUNT ON;INSERT INTO [Categories] ([CategoryID], [CategoryName])VALUES (p0, p1),(p2, p3),(p4, p5);,Np0 int,p1 nvarchar(4000),p2 int,p3 nvarchar(4000),p4 int,p5 nvarchar(4000),p01,p1NClothing,p22,p3NFootwear,p43,p5NAccessories 您可以看到没有3条单独的插入语句它们被组合成一个语句并且使用表值参数作为值。这里是SQL Server Profiler的屏幕截图 如果我们在EF 6执行相同的代码那么在SQL Server Profiler中会看到3个单独的插入语句 这在性能和速度方面有很大的不同。如果这些查询针对的是云部署的数据库那么它也将具有更高成本效益。现在我们看看如果是更新语句会发生什么。 更新操作 以下代码将获得所有category记录列表然后遍历它们并为每个类别名称追加“-Test”文本并保存。在这个时间点上数据库中只有3条记录。 using (var dataContext new SampleDBContext()) {ListCategory lst dataContext.Categories.ToList();       foreach (var item in lst) {item.CategoryName item.CategoryName -Test;}dataContext.SaveChanges(); } 并且在EF Core执行时生成以下查询通过 SQL Server Profiler 捕获。 exec sp_executesql NSET NOCOUNT ON;UPDATE [Categories] SET [CategoryName] p0WHERE [CategoryID] p1;SELECT ROWCOUNT;UPDATE [Categories] SET [CategoryName] p2WHERE [CategoryID] p3;SELECT ROWCOUNT;UPDATE [Categories] SET [CategoryName] p4WHERE [CategoryID] p5;SELECT ROWCOUNT;,Np1 int,p0 nvarchar(4000),p3 int,p2 nvarchar(4000),p5 int,p4 nvarchar(4000),p11,p0NClothing-Test,p32,p2NFootwear-Test,p53,p4NAccessories-Test 您可以看到有3个更新语句但都被组合成单条SQL语句。在EF 6执行相同的代码SQL Server Profiler中将显示3个单独的更新语句 使用EF 6将有1 N往返数据库一次加载数据以及每行数据的修改但是使用EF Core保存操作是批量的所以只有两次往返数据库。 插入、更新、删除混合操作 现在让我们尝试将3个操作混合在一起看看EF Core和EF 6的行为。以下代码将更新现有记录并插入2条新记录最后删除一条记录。 using (var dataContext new SampleDBContext()) {Category cat dataContext.Categories.First(c c.CategoryID 3);cat.CategoryName Accessory;dataContext.Categories.Add(new Category() { CategoryID 4, CategoryName Fragnance });dataContext.Categories.Add(new Category() { CategoryID 5, CategoryName Sports });Category catToDelete dataContext.Categories.First(c c.CategoryID 2);dataContext.Entry(catToDelete).State EntityState.Deleted;dataContext.SaveChanges(); } 当执行SaveChanges()时生成以下查询通过 SQL Server Profiler 捕获 exec sp_executesql NSET NOCOUNT ON;DELETE FROM [Categories]WHERE [CategoryID] p0;SELECT ROWCOUNT;UPDATE [Categories] SET [CategoryName] p1WHERE [CategoryID] p2;SELECT ROWCOUNT;INSERT INTO [Categories] ([CategoryID], [CategoryName])VALUES (p3, p4),(p5, p6);,Np0 int,p2 int,p1 nvarchar(4000),p3 int,p4 nvarchar(4000),p5 int,p6 nvarchar(4000),p02,p23,p1NAccessory,p34,p4NFragnance,p55,p6NSports 正如您所看到的有单个DELETEUPDATE和INSERT语句但被组合成一个单独的SQL语句。这里是SQL Server Profiler的屏幕截图 在EF 6的中会发生什么嗯您猜对了。您可以通过 SQL Profiler 看到在数据库上执行的单个语句 因此使用EF Core进行批处理可以很大程度提高应用程序的速度和性能。等等如果大型查询如要插入500列和100行的表会发生什么它会失败吗 批处理限制取决于您的数据库提供者。例如SQL Server查询支持的参数最大数量为2100因此EF Core在此范围内可以漂亮地工作并且当批处理限制超出数据库提供程序范围时将分批查询。但是在一个查询中批处理所有内容有时不一定是个好方式。有没有办法禁用批处理 如何禁用批处理 是的您可以禁用批处理。要禁用批处理需要修改MaxBatchSize选项您可以在OnConfiguring方法中进行配置。 protected override void OnConfiguring(DbContextOptionsBuilder optionbuilder){    string sConnString Serverlocalhost;DatabaseEFSampleDB;Trusted_Connectiontrue;;optionbuilder.UseSqlServer(sConnString , b b.MaxBatchSize(1)); } 这里将最大批量大小设置为1这意味着批处理现在只能是单条查询。换句话说它的行为类似于EF 6要插入3个记录将有3个单独的插入语句。使用此选项可以定义最大批量大小。 总结 批处理是期待已久的功能并且社区也多次提出现在EF Core已经支持确实很棒它可以提高应用程序的性能和速度。现在EF Core本身还不像EF 6那么强大但随着时间的推移它将会越来越成熟 相关文章  Entity Framework Core 生成跟踪列在Apworks数据服务中使用基于Entity Framework Core的仓储Repository实现Entity Framework Core的贴心优雅处理带默认值的数据库字段Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制Entity Framework Core 软删除与查询过滤器Entity Framework Core 命名约定全文索引 - Pomelo.EFCore.MySql 原文地址http://www.cnblogs.com/tdfblog/p/batching-of-statement-in-entity-framework-core.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.zqtcl.cn/news/877746/

相关文章:

  • 邹城网站建设网站建设要注意什么
  • 图片在线制作表情合肥网站推广优化
  • 哈尔滨网站建设网站分成几种类型
  • 网站怎么添加二级域名全栈网站开发
  • 网站公司建设网站收费模块专业的网站建设联系
  • 网站建设广告方案linchong.wordpress
  • 北京快速建站模板制作网页教程的软件
  • 深圳市住房建设局网站首页wordpress主页加关键词
  • 专业做网站较好的公司wordpress 大内存
  • 网站关站html5编辑器手机版下载
  • 网站域名多少钱住房和城乡建设部网站注册
  • seo整站优化 wordpress广州门户网站建设公司
  • 深圳市官网网站建设平台上海在建工程查询
  • 网页制作模板的网站免费合肥网站建设5k5
  • 公司信息化网站建设实施方案永久免费国外vps无需信用卡
  • 域名备案企业网站内容好网站建设公司开发
  • 合肥公司做网站网站代码需要注意什么
  • 梧州网站制作公司高端网站开发公司有哪些
  • seo网站设计北京做app的公司有哪些
  • 佛山淘宝设计网站设计价格软件商城免费下载 app
  • 物联网型网站开发cms系统源码
  • 淘宝价格网站建设wordpress 点餐
  • 晋中网站建设公司汉滨区城乡建设规划局 网站
  • 2018年的网站制作湖北省随州市建设厅网站
  • 做网络销售保温材料用什么网站好企业网站的建设企业
  • 2008发布asp网站海外如何 淘宝网站建设
  • 小米云网站开发食品包装
  • 销售网站怎么做的帝国cms网站搬家教程
  • 甘肃省城市建设档案馆网站wordpress推广自己淘宝店
  • 专业做曝光引流网站国家反诈中心app下载流程