最新评论

LiangHu 2012-03-20 12:31
你确定你的C#代码中的 UnZip 方法正确吗?
ahui 2011-12-19 10:06
[quote]天水三千:其实就是相当于你的多条件组合查询,我试过如果添加两个条件就会出错[/quote] 我上面回复的够清楚了吧+_+! 我的多条件查询是没有问题的 你的And的处理中和我的明显不一样 你的代码: var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>()); return Expression.Lambda<Func<T, bool>>(Expression.And(expr1.Body, invokedExpr), expr1.Parameters); 我贴的是: var candidateExpr = Expression.Parameter(typeof(T), "candidate"); var parameterReplacer = new ParameterReplacer(candidateExpr); var left = parameterReplacer.Replace(exp_left.Body); var right = parameterReplacer.Replace(exp_right.Body); var body = Expression.And(left, right); return Expression.Lambda<Func<T, bool>>(body, candidateExpr); [b]多个expressioins合并的时候,要把里面的Parameter名称统一[/b] 实在不行,你直接把我的代码复制过去执行吧
天水三千 2011-12-19 08:20
其实就是相当于你的多条件组合查询,我试过如果添加两个条件就会出错
ahui 2011-12-16 20:43
[quote]天水三千: 我是这样写的,但是报错,只增加一个条件的时候就没事,添加两个以上就出错: 未将对象引用设置到对象的实例。 ...[/quote] 你没有看完全,你的代码应该是从别的地方复制过来的吧 请参照类:ParameterReplacer
天水三千 2011-12-16 13:54
var where = PredicateExtensionses.True<PlatformAmount>(); where = where.Or(x => x.LogId == 1); where = where.Or(x => x.LogId == 3); var query = PlatformAmountService.Query<PlatformAmount>().Where(where).Count(); 我是这样写的,但是报错,只增加一个条件的时候就没事,添加两个以上就出错: 未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 源错误: 行 26: where = where.Or(x => x.LogId == 3); 行 27: 行 28: var query = PlatformAmountService.Query<PlatformAmount>().Where(where).Count(); 行 29: 行 30: //if (true) 源文件: f:\2011\Demo\src\WebSite\Default.aspx.cs 行: 28
ahui 2011-12-16 10:20
@YzDever 可以有多次,查询条件不能太复杂,太复杂了比如你引用另一个自定义的方法,EF是不可能翻译成对应的SQL的
YzDever 2011-12-16 10:17
是不是只能拼一次? 第二次的话就异常了
ahui 2011-12-01 11:03
改为: WhereExp = WhereExp.And(u => u.Approved_OrderID == 1); WhereExp = WhereExp.And(u => u.Approved_UserID == 1);
lention 2011-12-01 11:00
hi ahui,我用了下你写的这种方法,但是为什么每一次我都会把所有的记录查出来呢?貌似参数Expression<Func<T, bool>> where并未起到过滤的作用。以下是我调用的代码段 WhereExp.And(u => u.Approved_OrderID == 1); WhereExp.And(u => u.Approved_UserID == 1); actual = target.GetApprovedByCondition(WhereExp, OrderByString, Ascending, PageIndex, PageSize, ref Msg); 数据库中有三条记录,但同时满足上面两个条件的只有一条,而我查询出来的结果却有三条。如有空,请解答之。谢谢!!!
猫狼 2011-11-21 18:40
G级以上的文件依然慢,有没有更好的方案?
Daniel Chow 2011-11-18 18:14
其实这点损耗还可以接受,
秋叶抚风 2011-10-14 16:48
好歹也上个图瞧瞧啊。
枫天 2011-06-07 09:44
讲得很详细啊,学习了。有没有整个工程的例子呢?
Mr.Yoyior 2010-12-28 01:22
能说具体点吗?我这还是不行的啊