ViewResult не возвращает данных
Я использую шаблон от NerdDinner. Я вызываю Index() в моем методе Test, и у меня не получено данных ViewREsult. Таким образом, переменные данные оказываются нулевыми.
Однако я знаю, что там есть данные. Поскольку я могу перейти к окну просмотра и развернуть переменную result и развернуть viewData->Model->ResultsView, тогда я вижу, что "представление результата при расширении будет перечислять IEnumerable". Когда я расширяю его, данные существуют.
Любая идея, почему данные возвращаются к нулю, если я не расширю?
спасибо Джас
[TestMethod]
public void Index__Should_Return_1_or_More_lessons()
{
var controller = new LessonController(new FakeLessonRepository());
var result = controller.Index() as ViewResult;
var data = result.ViewData.Model as IList<Lesson>;
Assert.IsTrue(data.Count > 0);
}
1 ответ
Это из-за отложенной загрузки в Linq или EF (в зависимости от того, что вы используете). Запросы выполняются только при необходимости. Вы можете принудительно выполнить его, вызвав финализатор, такой как ToList() или ToArray() или что-то подобное.