Subsonic 3.0 Testrepository «Найти» не работает
-
26-09-2019 - |
Вопрос
Используя Subsonic 3, у меня есть простой класс под названием «ConferencePository», который имеет метод, который возвращает кучу конференций на основе их состояния. Я проверяю это, используя подгруппу, встроенный в поддержку тестирования. Моя настройка репо выглядит так:
// 2 Approved, 4 pending, 3 rejected
var data = new List<Conference>
{
new Conference {Approved = true, Rejected = false},
new Conference {Approved = true, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = false},
new Conference {Approved = false, Rejected = true},
new Conference {Approved = false, Rejected = true},
new Conference {Approved = false, Rejected = true}
};
Conference.ResetTestRepo();
Conference.Setup(data);
И тогда мой класс REPO в конечном итоге выполняет эту строку, используя Find ():
return Conference.Find(c => c.Approved).ToList();
Беда в том, что это всегда возвращает все записи (9). Я пробовал разные критерии найти, безрезультатно.
Кто-нибудь знает, что такое проблема? Я пытался исправить сравнение равенства в шаблонах TT, как описано здесь: Исправления для проблем с концептопозиторией дозвуковой 3 Но это не помогает.
Решение
Так меняется из .find to ...
return Conference.All().Where(c => c.Approved == true).ToList();
Решает это.
Другие советы
Не должен иметь никакого значения, но вы пробовали:
return Conference.Find(c => c.Approved == true).ToList();