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

修改公司网站中国十大门户类网站

修改公司网站,中国十大门户类网站,温州网站网络公司,广西建设厅网证件查询概要 EF Core 7.0 提供了一个可以将LINQ查询和批量修改相结合的方法ExecuteUpdate。由于数据修改是以批量更新的方式完成,所以可以减少数据库的往返次数。 本文将主要介绍ExecuteUpdate的使用方法。 代码和实现 基本案例 本文我们使用银行分行,ATM机…

概要

EF Core 7.0 提供了一个可以将LINQ查询和批量修改相结合的方法ExecuteUpdate。由于数据修改是以批量更新的方式完成,所以可以减少数据库的往返次数。

本文将主要介绍ExecuteUpdate的使用方法。

代码和实现

基本案例

本文我们使用银行分行,ATM机和分行经理三张数据表,关系如下,类定义请见附录:

  1. 一个分行拥有若干台ATM机
  2. 一台ATM机只能隶属于一个分行
  3. 一个分行只拥有一名分行经理
  4. 一个人只能做一个分行的经理

批量更新之单表操作

我们在所有IsDeleted 为true,即已经关闭的分行, 将它们的名称前面加上字符串 Decommissioned

EF CORE代码如下:

public async Task<int> UpdateBranchSingleTable()
{return await _context.Set<Branch>().Where(b => b.IsDeleted == true).ExecuteUpdateAsync(b => b.SetProperty(p => p.Name, m => "Decommissioned" +  m.Name + "!"));    
}

生成的SQL代码如下:

UPDATE [t]SET [t].[Name] = (N'Decommissioned' + [t].[Name]) + N'!'FROM [tt_branch] AS [t]
WHERE [t].[IsDeleted] = CAST(1 AS bit)

生成的是批量更新的SQL语句。

批量更新之多表操作

Case 1 查询拥有支持外币操作ATM机的分行,并将分行名称前面标注支持外币业务。

 public async Task<int> UpdateBranchFormMultipleTable(){return await _context.Set<Branch>().Where(b => b.IsDeleted == false && b.Atms.Any(a => a.SupportForeignCurrency == true)).ExecuteUpdateAsync(b => b.SetProperty(p => p.Name, m => "Global Service " + m.Name));    }

Case 2 查询分行经理title是BranchManager的分行,并将这些分行的名称前面增加Level 2。

 public async Task<int> UpdateBranchMultipleTables() {return await _context.Set<Branch>().Where(b => b.IsDeleted == false && b.Manager.Title == "BranchManager").ExecuteUpdateAsync(b => b.SetProperty(p => p.Name, m => "Level 2" + m.Name));}

生成的SQL代码如下:

UPDATE [t]SET [t].[Name] = N'Level 2' + [t].[Name]FROM [tt_branch] AS [t]INNER JOIN [tt_user] AS [t0] ON [t].[Id] = [t0].[Id]
WHERE [t].[IsDeleted] = CAST(0 AS bit) AND [t0].[Title] = N'BranchManager'

我们看到,SQL是基于联表操作以后再进行的过滤和更新。这样看,通过Dapple等半自动ORM框架,自己完成的SQL语句和通过EF Core生成的SQL没有任何区别。

附录

实体类定义

public class Entity
{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int Id { get; set; }[Timestamp]public byte[]? Rowversion { get; set; }public bool IsDeleted { get; set; }
}[Table("tt_branch")]public class Branch : Entity{[Required]public string Name { get; set; } = string.Empty;[Required]public string Address { get; set; } = string.Empty;[Required]public bool hasCreditCardService { get; set; } = false;[Required]public bool hasChequeService { get; set; } = false;public ICollection<ATM> Atms { get; } = new List<ATM>();public User Manager { get; set; } = null!;
}
public abstract class BankDevice : Entity
{[Required]public string Name { get; set; } = string.Empty;[Required]public DeviceStatus DeviceStatus { get; set; } = DeviceStatus.Running;}[Table("tt_atm")]public class ATM : BankDevice{[Required]public bool SupportForeignCurrency { get; set; } = false;}
public enum DeviceStatus
{Running = 1,Standby,Maintance
}[Table("tt_user")]
public class User:Entity
{public string FirstName { get; set; }public string LastName { get; set; }public string Title { get; set; }public Branch Branch { get; set; } = null!;
}

实体关系定义

protected override void OnModelCreating(ModelBuilder modelBuilder)
{modelBuilder.Entity<Branch>().HasMany(x => x.Atms).WithOne().HasForeignKey("BranchId").IsRequired();modelBuilder.Entity<Branch>().HasMany(x => x.Cdms).WithOne().HasForeignKey("BranchId").IsRequired();modelBuilder.Entity<Branch>().HasMany(x => x.MCAtms).WithOne().HasForeignKey("BranchId").IsRequired();modelBuilder.Entity<Branch>().HasOne(x => x.Manager).WithOne(x => x.Branch).HasForeignKey<Branch>();}
http://www.yayakq.cn/news/305734/

相关文章:

  • 百度收录哪些网站网站搭建软件有哪些
  • 大气简约企业网站模板广告设计需要学什么课程
  • 免费建站哪个网站最好vi设计说明范文解析
  • 做网站公司赚钱吗普陀大型网站建设
  • 怎么做网站视频seo服务公司
  • 国内有做外汇的正规网站吗石家庄智能模板建站
  • wordpress网站 添加微信个人公司网站建设
  • 照片分享网站开发费用免费网站怎么做排名
  • 以橙色为主的网站兰溪网站建设公司
  • 移动门户网站建设特点wordpress付费资源
  • django做网站好吗设计师工作室
  • 网站做直播吗网站备案需要关闭
  • 假发网站建设微信公众平台高级开发
  • 公司网站建设属于软件销售wordpress上传七牛
  • 做网站没有公网wordpress调用post
  • 巴西网站后缀wordpress双数据库
  • 做服装有哪些好的网站有哪些详述电子商务网站的建设
  • 长春专业网站建设哪家口碑好高端建设网站建设
  • 做网站有哪些公司做网站编辑的发展方向晋升
  • 一个虚拟主机能安装2个网站吗营销推广是干什么的
  • 公众号h5网站开发网络运维工程师的月薪有多少
  • 山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗邯郸有没有专门做写字楼的网站
  • 网站被百度k关于网站建设的申请报告
  • 河池网站制作宁波网站推广在哪里
  • wordpress网站加载效果手机网站建设的行情
  • 一元购物网站建设中国建设银行网站个人
  • 网站app免费制作软件制作app软件要多少钱一个
  • 网站建设辶金手指排名十一seo教程资源
  • 周口市住房和城市建设局网站网站建设与营销经验
  • 用vs2012做网站案例国内做文玩的网站