• 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 = 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);
  • 相关阅读:
    ImageView 设置图片
    Android中GridView拖拽的效果【android进化三十六】
    Android 用户界面---拖放(Drag and Drop)(三)
    Android 用户界面---拖放(Drag and Drop)(二)
    Android 用户界面---拖放(Drag and Drop)(一)
    PHP中刷新输出缓冲
    php判断是否为json格式的方法
    php安全模式
    PHP json_encode() 函数介绍
    PHP mysql_real_escape_string() 函数防SQL注入
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/4581573.html
Copyright © 2020-2023  润新知