lambda表达式 类型转换 10
wherelambda=whereExpression.And(wherelambda,z=>Convert.ToInt32(z.shuzhi)>=Convert.ToI...
wherelambda = whereExpression.And(wherelambda, z => Convert.ToInt32(z.shuzhi) >= Convert.ToInt32(shuzhi2) && Convert.ToInt32(z.shuzhi3) <= Convert.ToInt32(shuzhi4));
其中 数值2 和数值4 使用lambda表达式前面就转换为int类型,但是 数值 和数值3 这是根据数据库表映射出来的列,我这个应该怎么进行转换呢,这个列是字符串类型,要比对的话只能转为int进行比对,lambda又不能这么转换 展开
其中 数值2 和数值4 使用lambda表达式前面就转换为int类型,但是 数值 和数值3 这是根据数据库表映射出来的列,我这个应该怎么进行转换呢,这个列是字符串类型,要比对的话只能转为int进行比对,lambda又不能这么转换 展开
展开全部
方法应该不止一种,简单的就是在z的model里设置下就好了
private string _shuzhi;
public int shuzhi
{
get { return Convert.ToInt32(_shuzhi); }
set { _shuzhi = value; }
}
复杂一点的话,可以从数据库读取z-Model那里操作,加个特性,重新映射数据库表对应的model字段
[DataMapping("shuzhi", System.Data.DbType.String)]
public int shuzhi { get; set; }
建议你用上面那种简单的方法,因为数据库里的字符串不一定能全部转换为int类型,处理不好容易抛异常。而用上面那种方法可以有很多种方式避免异常,比如
int.TryParse("1",out shuzhi)
追问
数据库中字段是varchar类型的,有没有办法进行关系运算符的比较。。
追答
说了啊,你可以在与数据库表对应的实体对象里处理,将数据库对应的那个字段转换成你想要的int类型,然后用lambda表达式比较。在sqlserver里varchar是可以直接比较大小的,比如'1'<'2','1'<'12',但是这种方式不推荐
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询