SmartSql Map

SmartSqlMap

属性说明
Scope域,用于SqlMap定义Sql声明范围

Statement标签

属性说明
Id唯一性编号
Cache缓存策略编号,引用自Cache标签

Statement 筛选子标签

标签真条件
IsEmptynull or 空字符串 or 空IEnumerable
IsEqual与比较值相等
IsFalse参数为 false
IsGreaterEqual参数大于等于比较值
IsGreaterThan参数大于比较值
IsLessEqual参数小于等于比较值
IsLessThan参数小于比较值
IsNotEmpty!(null or 空字符串 or 空IEnumerable)
IsNotEqual参数不等于比较值
IsNotNull参数不等于 null
IsNull参数等于 null
IsProperty查询对象包含属性名
IsTrue参数为 true
SwitchSwitch 标签
CaseSwitch标签的子标签,等于比较值
DefalutSwitch标签的子标签,未命中任何Case子标签时命中此标签

Statement 其他子标签

标签说明
Env用于判断全局变量 DbProvider
Include引用外部Statement
Dynamic动态标签,用于包裹筛选标签,匹配的第一个筛选标签的前缀将忽略
For用于参数为IEnumerable,遍历参数动态拼接Sql
Where继承至Dynamic,用于包裹筛选标签,匹配的第一个筛选标签前缀被忽略,并添加 Where 前缀
Set继承至Dynamic,用于Update,包裹筛选标签,匹配的第一个筛选标签前缀被忽略,并添加 Set 前缀,必须匹配至少一个子标签,否则将抛出SmartSqlException异常。
Placeholder占位符标签,用于替换参数键值

Demo

For

如果数组内类型里边为(值类型 | String), Key属性值为必选,且与For标签内键值保持一致

    var list = SqlMapper.Query<T_Test>(new RequestContext
        {
            Scope = "T_Test",
            SqlId = "GetList",
            Request = new
            {
                LikeNames = new string[] { "Ahoo", "Good" }
            }
        });
    <For Prepend="And" Property="LikeNames" Key="Name" Open="(" Separator="Or" Close=")">
        Name Like Concat('%',@Name,'%')
    </For>

如果数组内类型里边为 !(值类型 | String)

    IList<T_Test> test_list = new List<T_Test> {
        new T_Test{  Name="1", Status=1},
        new T_Test{  Name="2", Status=2}
    };
    SqlMapper.Execute(new RequestContext
        {
            Scope = "T_Test",
            SqlId = "InsertRange",
            Request = new { Values = test_list }
        });
<Statement Id="InsertRange">
    INSERT INTO T_Test
    (Name,Status)
    VALUES
    <For Prepend="" Property="Values" Open="" Separator="," Close="">
        (@Name,@Status)
    </For>
</Statement>

转载于:https://www.cnblogs.com/Ahoo-Wang/p/SmartSql-Map.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值