C #, Linq, динамический запрос: код для фильтрации динамического запроса вне хранилища - PullRequest
1 голос
/ 23 марта 2010

Если вы делаете что-то подобное в своем репозитории:

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);

Как вы сможете сортироватьрезультат за пределами хранилища с Dynamic Query?

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

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

1 Ответ

1 голос
/ 23 марта 2010

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

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

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

...