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() или что-то подобное.

Другие вопросы по тегам