LightSpeed的批量更新和批量删除
2015-07-28 08:57
393 查看
1.Update
对于批量操作 无论是Update还是Remove 都是使用LightSpeed的Query对象来完成。
注:Student是要进行Update的表(实体),StuName是表Student中用于查询的
这个Query对象相当于一个Where。具体的Set语句是在下面这个代码里实现
翻译过来就是,将StuName等于“老王”的Student的Age更新为25.
要注意的是 ,上面的更新对象是匿名类型,如果某一个属性需要更新为null的话会报错【无法将<null>赋予匿名类型属性】
这就需要用一个类或结构来承载。如下
2.Remove
批量删除与批量更新几乎一样,区别在于最后一步使用的是Remove方法,而不是Update。
3. 以上两种情况使用的Query,第二个参数都是一个QueryExpression对象,用于筛选数据。如果有多个筛选条件,则把这些条件用 && 和|| 拼接起来即可。
4.筛选条件的使用也是很灵活的。 如 == , in ,> ,<之类的。以下列举常用的一些:
对于批量操作 无论是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 = 25 });
翻译过来就是,将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")==1); DBContext.Remove(query);
3. 以上两种情况使用的Query,第二个参数都是一个QueryExpression对象,用于筛选数据。如果有多个筛选条件,则把这些条件用 && 和|| 拼接起来即可。
QueryExpression qe = Entity.Attribute("Id") == 1 || Entity.Attribute("Id") == 2; var query = new Query(typeof(Student), qe); dbPlatform.Remove(query);
4.筛选条件的使用也是很灵活的。 如 == , in ,> ,<之类的。以下列举常用的一些:
//in 用法比较特别,方法需要的参数是一个object数组 object[] idArray = new List<int>{1,2,3,4,5,6,7,8}.Where(s => s % 2 == 0).Select(s => s as object).ToArray(); QueryExpression qe = Entity.Attribute("Id").In(idArray); //基本使用 qe = Entity.Attribute("Id") == 1; qe = Entity.Attribute("Id") > 3; qe = Entity.Attribute("Id") < 5; qe = Entity.Attribute("Id") != 0; // Upper,Lower,Like qe = Entity.Attribute("Name").Upper().Like("ray"); // Function 使用数据库中的函数 qe = Entity.Attribute("Age").Function(0, "Power", 3) < 20; //Between qe = Entity.Attribute("Age").Between(1, 33);
相关文章推荐
- 10个最佳Web开发资源
- 详谈PHP编码转换问题
- python 字符串
- 【串和序列处理 4】Suffix Trie 子串匹配结构
- ASP.NET Web Api 2 接口API文档美化之Swagger
- 2015.07.27总结
- stl,map,vector
- 【串和序列处理 3】Trie Tree 串集合查找
- Hadoop初探之MapReduce+HBase实例
- windows下sshfs挂载远程目录-server could not connect故障解决
- Visual Studio 2015正式发布,促进生产力的10个新功能解析
- ★经典问题—链表中的环问题
- java调用webservice接口的方法
- c++中的可变参数
- Foudation框架内的所有函数和方法
- [Java]用递归与非递归的形式输出给定目录的所有文件名
- 恶魔城
- 【Google】25匹马的角逐
- 【腾讯】报纸与信件的字符匹配效率问题
- 【mongodb系统学习之十】mongodb查询(三)