rafy中的枚举字段in查询解决方法

public virtual EITransactionList GetByPage(List<TransactionStatus> status ,PagingInfo pi = null)
        {
            //枚举转int
            List<int> iStatus = new List<int>();
            status.ForEach(e => { iStatus.Add((int)e); });

            var f = QueryFactory.Instance;

            var t = f.Table<EITransaction>();//实体表

            var q = f.Query(
                //selection: t.Star(),//selection不写查询所有列
                from: t,//要查询的实体的表
                where: t.Column(EITransaction.StatusProperty).In(iStatus),//where 条件,
                orderBy: new List<IOrderBy> {//排序
                    f.OrderBy(t.Column(EITransaction.TransDateProperty), OrderDirection.Descending),
                    f.OrderBy(t.Column(EITransaction.StatusProperty),OrderDirection.Descending)
                }
            );

            return (EITransactionList)this.QueryData(q, pi);
        }


rafy在用linq查询,,解决问题时,总是报错,因为在取值对比时,取的是枚举的名称,而数据库存的是值.sqltree直接用枚举也有同样问题.

解决这个问题,就像上边的代码一样,将枚举转成int.再去In就可以了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值