Возможно, я неправильно понимаю ваш вопрос, но тот факт, что EDMX генерирует код, который наследуется от ObjectContext, не мешает вам использовать внедрение зависимостей.Похоже, вы беспокоитесь о невозможности внедрения вашего ObjectSet в свой репозиторий, но это не совсем то, как он предназначен для использования.
С общим шаблоном репозитория, таким как найденный здесь , интерфейс IRepository - это то, что вы внедряете в свои ViewModels / Controllers / Whзнаки.
Таким образом, вы не вводите IObjectContext или IObjectSet в свой репозиторий;вместо этого вы внедряете свой IRepsoitory в ваши классы, которые в этом нуждаются, и вы предоставляете реализацию интерфейса IRepository, который использует ваш ObjectSet.Затем вы можете смоделировать свой интерфейс IRepository для тестирования или переключиться на совершенно другую конкретную реализацию репозитория, не затрагивая любой другой ваш код.
В настоящее время мы делаем то же самое с EF4 DB-first и репозиторием.шаблон, который я привел выше, и он работает довольно хорошо.