分类:
.NET
//后台EF方法(自编) public List<T> GetTs<T>(Expression<Func<T, bool>> func=null)
//调用 List<UserInfo> users = eF.GetTs<UserInfo>(a => a.UserName == "张三"); //此时无异常 //但是将条件变为参数之后 ps: string d="张三"; List<UserInfo> users = eF.GetTs<UserInfo>(a => a.UserName == d); //此时会返回一个 ConstantExpression right = binaryExpression.Right as ConstantExpression; //right=null 而且调试可以看到right的NodeType为:MemberAccessException //但是MemberAccessException是类成员值为空或无权限访问时的一个异常 //所以此时不能通过ConstantExpression 类的方法取到右边参数的值 //解决方法: 把right值模仿left值来取 MemberExpression memberr = binaryExpression.Right as MemberExpression;//注:不再是ConstantExpression var RightValue=Expression.Lambda(memberr).Compile().DynamicInvoke(); //此时 直接取到参数d里面的值 ‘张三’ //从而生成sql语句 : ‘张三’
判断数据是否为数值类型,便于生成sql语句时判断是否需要添加单引号以保存字符串类型的数据 保证sql语句能正常执行
//判断原理 1.拿到数据的类型 2.通过和数值类型继承的父类进行比较object num=1;Type typea=num.GetType(); if (!typea.IsClass && !typea.IsInterface && typea.GetInterfaces().Any(a => a == typeof(IFormattable))) { //数据处理 } else { //数据处理 }
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术