2010-11-29 3 views
0

Я пытаюсь создать запрос с предложением Dynamic where в EF версии 4, а предложение where where, которое создается, - это «c.clientid == Clientid» из исходного оператора. глядя на SQL Profiler, операторы result.where не добавляются к переменной результата. Можете ли вы сказать мне, что я делаю неправильно?EF 4 Dynamic Where Clause не работает

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(...) в переменную результата.

В Вашем случае заявления вставки: result = result.Where(...);

+0

Я только что пришел сюда с той же ошибкой. Я не знал этого результата. Где-то вернул бы что-то, я думал, что это функция. Добавление результата = result.where выполнило его для меня. Спасибо. – SolidSnake4444 2013-12-27 20:42:09