﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-ahui .NET 历程-最新评论</title><link>http://www.cnblogs.com/ahui/CommentsRSS.aspx</link><description /><language>zh-cn</language><pubDate>Fri, 20 Apr 2012 02:48:39 GMT</pubDate><lastBuildDate>Fri, 20 Apr 2012 02:48:39 GMT</lastBuildDate><generator>cnblogs</generator><item><title>Re:.NET和Android解压缩处理</title><link>http://www.cnblogs.com/ahui/archive/2012/03/20/2023847.html#2335128</link><dc:creator>LiangHu</dc:creator><author>LiangHu</author><pubDate>Tue, 20 Mar 2012 04:31:03 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2012/03/20/2023847.html#2335128</guid><description><![CDATA[你确定你的C#代码中的 UnZip 方法正确吗？<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">LiangHu</a> 2012-03-20 12:31 <a href="http://www.cnblogs.com/ahui/archive/2012/03/20/2023847.html#2335128#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/19/2127282.html#2273364</link><dc:creator>ahui</dc:creator><author>ahui</author><pubDate>Mon, 19 Dec 2011 02:06:13 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/19/2127282.html#2273364</guid><description><![CDATA[[quote]天水三千：其实就是相当于你的多条件组合查询，我试过如果添加两个条件就会出错[/quote]

我上面回复的够清楚了吧+_+!
我的多条件查询是没有问题的
你的And的处理中和我的明显不一样
你的代码:
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast&lt;Expression&gt;()); 
return Expression.Lambda&lt;Func&lt;T, bool&gt;&gt;(Expression.And(expr1.Body, invokedExpr), expr1.Parameters);


我贴的是:
        var candidateExpr = Expression.Parameter(typeof(T), &quot;candidate&quot;);
        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&lt;Func&lt;T, bool&gt;&gt;(body, candidateExpr);

[b]多个expressioins合并的时候，要把里面的Parameter名称统一[/b]

实在不行，你直接把我的代码复制过去执行吧<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">ahui</a> 2011-12-19 10:06 <a href="http://www.cnblogs.com/ahui/archive/2011/12/19/2127282.html#2273364#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/19/2127282.html#2273236</link><dc:creator>天水三千</dc:creator><author>天水三千</author><pubDate>Mon, 19 Dec 2011 00:20:05 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/19/2127282.html#2273236</guid><description><![CDATA[其实就是相当于你的多条件组合查询，我试过如果添加两个条件就会出错<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">天水三千</a> 2011-12-19 08:20 <a href="http://www.cnblogs.com/ahui/archive/2011/12/19/2127282.html#2273236#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2272123</link><dc:creator>ahui</dc:creator><author>ahui</author><pubDate>Fri, 16 Dec 2011 12:43:25 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2272123</guid><description><![CDATA[[quote]天水三千：
我是这样写的，但是报错，只增加一个条件的时候就没事，添加两个以上就出错：
未将对象引用设置到对象的实例。 
...[/quote]


你没有看完全，你的代码应该是从别的地方复制过来的吧
请参照类：ParameterReplacer<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">ahui</a> 2011-12-16 20:43 <a href="http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2272123#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271768</link><dc:creator>天水三千</dc:creator><author>天水三千</author><pubDate>Fri, 16 Dec 2011 05:54:24 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271768</guid><description><![CDATA[var where = PredicateExtensionses.True&lt;PlatformAmount&gt;();

        where = where.Or(x =&gt; x.LogId == 1);

        where = where.Or(x =&gt; x.LogId == 3);

        var query = PlatformAmountService.Query&lt;PlatformAmount&gt;().Where(where).Count();

我是这样写的，但是报错，只增加一个条件的时候就没事，添加两个以上就出错：
未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间，出现未处理的异常。请检查堆栈跟踪信息，以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 


行 26:         where = where.Or(x =&gt; x.LogId == 3);
行 27: 
行 28:         var query = PlatformAmountService.Query&lt;PlatformAmount&gt;().Where(where).Count();
行 29: 
行 30:         //if (true)
 

源文件: f:\2011\Demo\src\WebSite\Default.aspx.cs    行: 28<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">天水三千</a> 2011-12-16 13:54 <a href="http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271768#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271551</link><dc:creator>ahui</dc:creator><author>ahui</author><pubDate>Fri, 16 Dec 2011 02:20:50 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271551</guid><description><![CDATA[@YzDever
可以有多次，查询条件不能太复杂，太复杂了比如你引用另一个自定义的方法，EF是不可能翻译成对应的SQL的<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">ahui</a> 2011-12-16 10:20 <a href="http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271551#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271548</link><dc:creator>YzDever</dc:creator><author>YzDever</author><pubDate>Fri, 16 Dec 2011 02:17:50 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271548</guid><description><![CDATA[是不是只能拼一次? 第二次的话就异常了<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">YzDever</a> 2011-12-16 10:17 <a href="http://www.cnblogs.com/ahui/archive/2011/12/16/2127282.html#2271548#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/01/2127282.html#2258206</link><dc:creator>ahui</dc:creator><author>ahui</author><pubDate>Thu, 01 Dec 2011 03:03:51 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/01/2127282.html#2258206</guid><description><![CDATA[改为:
WhereExp = WhereExp.And(u =&gt; u.Approved_OrderID == 1);
WhereExp = WhereExp.And(u =&gt; u.Approved_UserID == 1);<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">ahui</a> 2011-12-01 11:03 <a href="http://www.cnblogs.com/ahui/archive/2011/12/01/2127282.html#2258206#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:Entity Framework4.1实现动态多条件查询、分页和排序</title><link>http://www.cnblogs.com/ahui/archive/2011/12/01/2127282.html#2258200</link><dc:creator>lention</dc:creator><author>lention</author><pubDate>Thu, 01 Dec 2011 03:00:45 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/12/01/2127282.html#2258200</guid><description><![CDATA[hi ahui,我用了下你写的这种方法，但是为什么每一次我都会把所有的记录查出来呢？貌似参数Expression&lt;Func&lt;T, bool&gt;&gt; where并未起到过滤的作用。以下是我调用的代码段
  WhereExp.And(u =&gt; u.Approved_OrderID == 1);
  WhereExp.And(u =&gt; u.Approved_UserID == 1);

 actual = target.GetApprovedByCondition(WhereExp, OrderByString, Ascending, PageIndex, PageSize, ref Msg);

数据库中有三条记录，但同时满足上面两个条件的只有一条，而我查询出来的结果却有三条。如有空，请解答之。谢谢!!!<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">lention</a> 2011-12-01 11:00 <a href="http://www.cnblogs.com/ahui/archive/2011/12/01/2127282.html#2258200#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:C#计算大文件MD5(同步)</title><link>http://www.cnblogs.com/ahui/archive/2011/11/21/1914586.html#2249944</link><dc:creator>猫狼</dc:creator><author>猫狼</author><pubDate>Mon, 21 Nov 2011 10:40:30 GMT</pubDate><guid>http://www.cnblogs.com/ahui/archive/2011/11/21/1914586.html#2249944</guid><description><![CDATA[G级以上的文件依然慢，有没有更好的方案？<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/ahui/" target="_blank">猫狼</a> 2011-11-21 18:40 <a href="http://www.cnblogs.com/ahui/archive/2011/11/21/1914586.html#2249944#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>
