LightSpeed的批量更新和批量删除
1.Update
对于批量操作 无论是Update还是Remove 都是使用LightSpeed的Query对象来完成。
注:Student是要进行Update的表(实体),StuName是表Student中用于查询的
var stuQuery = new Query(
typeof(Student),
Entity.Attribute("StuName") == "老王"
);
这个Query对象相当于一个Where。具体的Set语句是在下面这个代码里实现
dbContext.Update(stuQuery, new { Age = });
翻译过来就是,将StuName等于“老王”的Student的Age更新为25.
要注意的是 ,上面的更新对象是匿名类型,如果某一个属性需要更新为null的话会报错【无法将<null>赋予匿名类型属性】
这就需要用一个类或结构来承载。如下
dbSchool.Update(stuQuery, new AgeStruct { Age = null });
struct AgeStruct
{
public int? Age { set; get; }
}
2.Remove
批量删除与批量更新几乎一样,区别在于最后一步使用的是Remove方法,而不是Update。
var query = new Query(typeof(Student), Entity.Attribute("Id")==);
DBContext.Remove(query);
3. 以上两种情况使用的Query,第二个参数都是一个QueryExpression对象,用于筛选数据。如果有多个筛选条件,则把这些条件用 && 和|| 拼接起来即可。
QueryExpression qe = Entity.Attribute("Id") == || Entity.Attribute("Id") == ;
var query = new Query(typeof(Student), qe);
dbPlatform.Remove(query);
4.筛选条件的使用也是很灵活的。 如 == , in ,> ,<之类的。以下列举常用的一些:
//in 用法比较特别,方法需要的参数是一个object数组
object[] idArray = new List<int>{,,,,,,,}.Where(s => s % == ).Select(s => s as object).ToArray();
QueryExpression qe = Entity.Attribute("Id").In(idArray); //基本使用
qe = Entity.Attribute("Id") == ;
qe = Entity.Attribute("Id") > ;
qe = Entity.Attribute("Id") < ;
qe = Entity.Attribute("Id") != ; // Upper,Lower,Like
qe = Entity.Attribute("Name").Upper().Like("ray");
// Function 使用数据库中的函数
qe = Entity.Attribute("Age").Function(, "Power", ) < ;
//Between
qe = Entity.Attribute("Age").Between(, );
LightSpeed的批量更新和批量删除的更多相关文章
- Hibernate批量更新和批量删除批量添加(转)
通常,在一个Session对象的缓存中只存放数量有限的持久化对象,等到Session对象处理事务完毕,还要关闭Session对象,从而及时释放Session的缓存占用的内存.批量处理数据是指在一个事务 ...
- mysql进阶(十四) 批量更新与批量更新多条记录的不同值实现方法
mysql 批量更新与批量更新多条记录的不同值实现方法 在mysql中批量更新我们可能使用update,replace into来操作,下面详细介绍mysql批量更新与性能. 批量更新 mysql更新 ...
- MongoDB批量更新和批量插入的方式
最近,在调试代码中发现向MongoDB插入或者更新文档记录时若是多条的话都是采用for循环操作的,这样的处理方式会造成数据操作耗时,不符合批量处理的原则:对此,个人整理了一下有关MongoDB的批量更 ...
- MySQL进行 批量插入,批量删除,批量更新,批量查询
1.批量插入 ServiceImpl层 List<Person> addPeople = new ArrayList<>(); //addPeople存放多个Person对象 ...
- mysql 批量更新和批量插入
1. 批量更新 update table_name set field_name = CASE id WHEN id1 THEN field_value, WHEN id1 THEN field_ ...
- mysql 批量更新与批量更新多条记录的不同值实现方法
批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 代码如下: UPDATE mytable SET myfield = 'value' WHERE other_field = ...
- 批量更新sql |批量update sql
图所示现需要批量更新table2表内字段Pwd更新userName对IP地址username与Ip对应关系table1所示 update table2 set pwd=table1.ip from t ...
- mysql 批量更新与批量更新多条记录的不同值实现方法
作者: 字体:[增加 减小] 类型:转载 时间:2013-10-02 我要评论 在mysql中批量更新我们可能使用update,replace into来操作,下面小编来给各位同学详细介绍mysql ...
- 【转】【MySql】Update批量更新与批量更新多条记录的不同值实现方法
批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...
随机推荐
- Android 学习笔记之如何使用SQLite数据库来保存数据...
PS:最近一阵子都在为考试复习...坑爹的计算机网络,复习了3天,最后该不会的还是不会...明天还考英语...真蛋疼... 学习内容: 1.使用SQLite数据库来保存数据... SQLite: ...
- fcitx 无法启动
困扰了好久的问题,终于解决了. 问题描述: 在fcitx的输入法配置栏里,输入法列表是空的,使用Ctrl+space无法启用任何的输入法, 当然此截图中的是有的,这是问题已经解决后的状态了. 解决方法 ...
- UWP开发入门(十二)——神器Live Visual Tree
很久以前,我们就有Snoop这样的工具实时修改.查看正在运行的WPF程序,那时候调个样式,修改个模板,相当滋润.随着历史的车轮陷进WP的泥潭中,无论WP7的Silverlight还是WP8.1的run ...
- IOS开发UI基础 UIDatePicker的属性
UIDatePicker • Locale设置DatePicker的地区,即设置DatePicker显示的语言.// 1.跟踪所有可用的地区,取出想要的地区 NSLog(@& ...
- MVC中在一个视图中,怎么加载另外一个视图?
在RazorView.cshtml视图: <!--在视图中调用无返回值的方法,视图中调用无返回值的方法,要加上大括号--> <!--在一个视图中,直接加载另外一个视图--> @ ...
- 【C#】委托
一.委托的基本的写法 internal class Program { private static void Main(string[] args) { ChainDelegate(); Conso ...
- Ajax,谷歌提示AutoCompleteExtender控件
提示内容从数据库中读取: ------------------------------------------页面 <asp:ScriptManager ID="ScriptManag ...
- POSTMAN and HTTPie to test APIs
http://blog.mashape.com/postman-httpie-test-apis/ We love working with APIs at Mashape, and we love ...
- 如何把maven项目转成web项目
创建Web工程,使用eclipse ee创建maven web工程 1.右键项目,选择Project Facets,点击Convert to faceted from 2.更改Dynamic Web ...
- js倒计时防页面刷新
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...