2010-03-23 6 views
1

Если вы что-то подобное в вашем Repository:C#, Linq, динамический запрос: Код для фильтрации динамического запроса вне Repository

IQueryable<CarClass> GetCars(string condition, params object[] values) { 
    return db.Cars.Where(condition, values); 
} 

И вы задаете условия и значения вне хранилища:

string condition = "CarMake == @Make"; 
object[] values = new string[] { Make = "Ford" }; 

var result = myRepo.GetCars(condition, values); 

Как вы можете отсортировать результат вне репозитория с помощью динамического запроса?

return View("myView", result.OrderBy("Price")); 

Как-то я теряю природу DynamicQuery, когда данные выходят из репозитория. И да, я не работал, как вернуть тип CarClass, где вы обычно делаете на Select новый Carclass {FIELDNAME = m.fieldName, ...}

ответ

1

Динамический запрос требует:

  • в источник будет IQueryable<T> (так что, если это IEnumerable<T> или подобный, просто позвоните .AsQueryable() на него)
  • дополнительные библиотеки DLL, которые будут ссылаться в коде, который хочет выполнить динамический запрос
  • соответствующих using директивы, чтобы быть на месте в верхнем локального исходного файла

Проверьте те три, и вы должны быть в состоянии добавить .Where(condition), .OrderBy(name) и т.д.

+0

Бинго. Это то, что запоздало ночное программирование. –

 Смежные вопросы

  • Нет связанных вопросов^_^