Является ли хорошей практикой использование запросов linq в контроллерах?

Я не очень хорошо знаком с шаблоном MVC. Не могли бы вы сказать мне, какое из следующих трех действий контроллера лучше? Спасибо :)

(1) Есть запрос в действии:

public ActionResult List()
{
   var query = repository.Query().Where(it => it.IsHandled).OrderBy(it => it.Id);
   // ...
}

(2) Есть запрос в обслуживании:

public ActionResult List() 
{
    var items = service.GetHandledItemsOrderById();
    // ...
}

(3) Есть порядок в действии:

public ActionResult List()
{
    var items = service.GetHandledItems().OrderBy(it => it.Id);
    // ...
}

Если мы выберем (1), то у нас будет слишком много бизнес-логики в контроллере?

Если мы выберем (2), может быть много сервисных методов, таких как GetXXXByYYY () .

Если мы выберем (3), почему мы инкапсулируем Где (it => it.IsHandled) , но не
OrderBy (it => it.Id .

Есть идеи?

12
задан Matt Ball 22 August 2011 в 02:13
поделиться