Это зависит от того, что потребляет ваш «Репозиторий» (цитаты из-за неоднозначности). Я бы сказал, что если что-то вроде вашего последнего уровня (UI) потребляет ваши классы репозитория на NOT , то возвращает IQueryable. Однако, если у вас есть другой уровень между вашим уровнем пользовательского интерфейса и вашим уровнем доступа к данным, я бы сказал да, вернул IQueryable и ваш средний уровень обрабатывал бы выполнение запроса.
EDIT
Что касается тестирования вашего уровня доступа к данным (DAL) / репозитория, я бы сказал, что по большей части, если у вас нет действительной логики (если есть утверждения и т. Д.), Тестов практически не будет. В этот момент вы тестируете фреймворк. Мое предложение было бы поместить другой уровень между вашим уровнем доступа (UI) и DAL, как BLL или чем-то, что обрабатывает выполнение запросов IQueryable. Таким образом, ваш репозиторий может возвращать запросы, а ваш BLL может обрабатывать их выполнение и, возможно, выполнять некоторую логику, которую затем можно протестировать.