Где в Linq используется ObjectParameter

#c# #linq-to-entities #where

#c# #linq-to-entities #where-предложение

Вопрос:

Я хочу использовать ObjectParameter внутри запроса LINQ следующим образом:

 var query = systemEntities.Clients.Where("it.age > @a", new ObjectParameter("a", 20));
  

Затем я хочу добавить еще N предложений where к тому же запросу следующим образом:

 var query = query.Where("it.age < @b", new ObjectParameter("b", 20));
  

Могу ли я использовать одно и то же имя ObjectParameter несколько раз подобным образом?

 var query = systemEntities.Clients.Where("it.age > @a", new ObjectParameter("a", 20));

var query = query.Where("it.age < @a", new ObjectParameter("a", 20));
  

Ответ №1:

Ответ на ваш вопрос — нет. Из http://msdn.microsoft.com/en-us/library/bb896238.aspx

Параметры должны быть уникальными в ObjectParameterCollection. В коллекции не может быть двух параметров с одинаковым именем.