2010-11-29 67 views
0

我正在尝试在EF版本4中使用Dynamic where子句创建查询,并且正在生成的唯一where子句是来自初始语句的“c.clientid == Clientid”。查看SQL Profiler result.where语句不会被附加到结果变量。你能告诉我我做错了什么吗?EF 4 Dynamic Where子句不起作用

var result = (from c in cxt.Customer 
           where c.clientid == Clientid 
           select c); 

       string employeenumber = formdata["employeenumber"].ToString(); 
       if (!string.IsNullOrWhiteSpace(employeenumber)) 
       { 
        result.Where(t => t.EmployeeNumber.ToLower() == employeenumber); 
       } 

       string FirstName = formdata["FirstName"].ToString(); 
       if (!string.IsNullOrWhiteSpace(FirstName)) 
       { 
        result.Where(t => t.FirstName.ToLower().Contains(FirstName)); 
       } 

       return result.ToList(); 

回答

5

您不会将result.Where(...)的结果指定给您的结果变量。

在你的if语句插入:result = result.Where(...);

+0

我刚来到这里同样的错误。我没有意识到结果。哪里会回报什么,我认为这是一个功能。添加结果= result.where确实为我解决了它。谢谢。 – SolidSnake4444 2013-12-27 20:42:09