2012-03-01 2 views
0

Я потерян, поэтому мне нужна помощь.Репозиторий DbContext и MyDBContext

Я использую EF 4.2 и asp.net mvc3. У меня Generic Reposiotry, который работает в DbContext, через IoC я настроил DbContext для инициализации как MyDBContext. Пока все работает нормально.

Я использую элемент данных DbContext в своем классе репозитория, поэтому он имеет разные API-интерфейсы, отличные от MyDbContext. Правильно ли я это делаю?

благодаря

+1

Что такое 'MyDBContext' и почему у вас есть специальный тип, если ваш репозиторий ему не нужен? Почему ваш репозиторий не использует ваш тип? –

+0

@LadislavMrnka MyDBContext - это класс, который предлагает EF 4.2, который расширяет DbContext. И DbContext - это то, что несколько ppl в последний раз побудили меня использовать. С этим что-то не так? – afr0

+0

Нет, это просто означает, что ваш MyDBContext используется только для определения отображения. –

ответ

1

Если Im не используя единицы работы шаблона или услуг, вот как я это делаю

 

public class YourController : Controller 
{ 
    private ICustomerRepository _repository; 
    public YourController(ICustomerRepository repository) 
    { 
    _repository = repository 
    } 

... 
} 

public class CustomerRepository : ICustomerRepository 
{ 
    private IContext _context; 
    public CustomerRepository(IContext context) 
    { 
     _context = context; 
    } 

} 
 

Ваш график Затем объект построен ваш DI контейнер. ОБЕСПЕЧИВАЙТЕ, чтобы ваш контекст располагался по каждому запросу - это зависит от конфигурации, в зависимости от используемого контейнера DI.

+0

также у меня есть базовый класс для контроллера, который использует Службы, которые работают с универсальными репозиториями. Надеюсь, это поможет вам, ребята, лучше меня. – afr0

+0

Почему бы вам не вводить конкретную реализацию здесь (DbContext), а не интерфейс? похоже, тестирование будет немного сложнее. Вы пользуетесь услугами инъекций или передаете в своем контексте услуги? лично мне нравится вводить контроллер и позволять ему строить граф объектов всех зависимостей по линии. Если мне нужна услуга, я использую интерфейс и вставляю в него контекст. Вы можете ввести конкретную реализацию (как вы это делаете), но она делает насмешливое/тестирование этих контроллеров немного более жестким. –

Смежные вопросы