Я столкнулся с «проблемой», я не совсем уверен, что понимаю с Entity Framework.Я использую Entity Framework 4 и пытался использовать подход TDD.В результате я недавно реализовал функцию поиска, используя шаблон Repository.Для моего тестового проекта я реализую свой интерфейс репозитория и у меня есть набор «поддельных» данных объекта, которые я использую для целей тестирования.
Я столкнулся с проблемой, пытаясь заставить предложение Contains работать для инварианта регистрапоиск.Мой фрагмент кода для моего теста и класса репозитория, используемого для базы данных, выглядит следующим образом:
if (!string.IsNullOrEmpty(Description))
{
items = items.Where(r => r.Description.ToLower().Contains(Description.ToLower()));
}
Однако, когда я запускал свои тестовые случаи, результаты не заполнялись, если мой случай не соответствовал базовым данным,Я некоторое время пытался разобраться в том, что считал проблемой.Чтобы очистить свой разум, я попытался и подумал, будет ли тот же код с EF работать с внутренней базой данных SQL, поскольку SQL явно поддерживает команду like и выполняется так, как я ожидал, с использованием той же логики.
Я понимаю, почему EF для базы данных поддерживает предложение Contains.Тем не менее, я был удивлен, что мои юнит-тесты не сделали.Любые идеи, почему кроме поддержки SQL-сервером предложения like, когда я использую объекты, которые я заполняю в коллекции, а не на сервере базы данных?
Спасибо!
Джон