Использование Ninject с Entity Framework - PullRequest
1 голос
/ 18 сентября 2009

У меня есть класс репозитория, который принимает ObjectContext с именем «TestDB». Когда я запускаю свое веб-приложение, я получаю сообщение «Невозможно загрузить указанный ресурс метаданных», почти как если бы он больше не выбирал параметры подключения из моего файла web.config.

Вот фрагмент моего кода.

[Inject]
public SqlCatelogRepository(){
   _dataContext = new SQLDb(); 
   //EF Entity, should pickup connection settings from web.config
}

Как только я понял, что там происходит, я хотел бы передать свой DataContenxt, но я не могу понять, как это должно выглядеть в Ninject Mapping.

1 Ответ

1 голос
/ 28 октября 2009

Попробуйте что-то вроде:

[Inject]
public SqlCatelogRepository(){
   _dataContext = kernel.Get<SQLDb>(); 
   //EF Entity, should pickup connection settings from web.config
}

Это даст NInject возможность перехватить вашу активацию. Тогда ваши сопоставления могут применяться.

Возможно, вы захотите проверить подход «Service Locator», о котором Нейт писал: http://kohari.org/2008/06/18/playing-nice-with-service-locators

...