
- //后台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
- {
- //数据处理
- }
评价
排名
46
文章
10
粉丝
1
评论
0
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术