数据上下文原理

本文通过代码示例探讨了数据上下文(DataContext)在处理数据增删改操作时的效率问题。原始实现中,频繁的提交更新导致了大量的字段检查。改进后的代码在提交后清空数据上下文,显著提高了效率。同时介绍了DataContext.Read和DataContext.Write的使用区别,前者取数据时不自动加入上下文,优化了查询性能。
摘要由CSDN通过智能技术生成

代码例子一:

//查出SomeEntity表的所有数据实体并循环
foreach(var entity in DataContext.SomeEntity.ToList()){
    //更新编辑时间
    entity.EditTime = DateTime.Now;
 
    //提交执行Sql更新
    DataContext.SubmitChanged();
}

 

//查出SomeEntity表的所有数据实体并循环 foreach(var entity in DataContext.SomeEntity.ToList()){ //更新编辑时间 entity.EditTime = DateTime.Now; //提交执行Sql更新 DataContext.SubmitChanged(); }

 

假如SomeEntity总共取出100条数据,取出来后会自动将这100条数据放入数据上下文(DataContext)中。

假如SomeEntity里面有10个字段,每一次循环提交更新(SubmitChanged),都会捡查一遍数据上下文中哪些数据有更改过,然后对更改过的实体执行Sql更新。

那么总捡查字段次数 = 数据上下文里的实体数量 * 实体字段数量 * 循环次数 = 100 * 10 * 100 = 10万次

 

 

 

 

代码例子二:

//查出SomeEntity表的所有数据实体并循环
foreach(var i = 0; i < 100; i++)
{
    //创建实体
    var entity = new SomeEntity();
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值