Настройка строки подключения сущности с помощью NinjectMvc3 - PullRequest
0 голосов
/ 19 декабря 2011

Я впервые установил Ninject.Я использую версию NinjectMvc3, которая дает вам класс NinjectMvc3 в папке App_Start через Nuget.Там, в методе RegisterServices , я пытаюсь подключить строку разрешенного подключения, которая есть в моем файле web.config.По сути, сейчас у меня есть следующее.

var sConnection = ConfigurationManager.ConnectionStrings["dEntities"].ConnectionString;
        kernel.Bind<IDataContext>().To<DataContext>().WithConstructorArgument("dEntities", new dEntities(sConnection));

Это дает мне следующую ошибку Сведения об исключении: System.InvalidOperationException: Этот метод не может быть вызван на этапе предварительной запуска приложения.

И вот некоторые из исходных ошибок:

/// Initialize a new dEntities object.
     /// </summary>
     public dEntities(string connectionString) : base(connectionString, "dEntities")
     {
         this.ContextOptions.LazyLoadingEnabled = true;

Что я делаю не так?

РЕДАКТИРОВАТЬ: я могу добавить, что я использую Entity Framework и шаблон репозитория.То, что я надеюсь сделать, - это как-то создать экземпляр строки соединения с правами доступа в web.config и связать ее с NinjectMvc3.У кого-нибудь есть хороший вклад по этому вопросу?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2011

Если я хорошо помню, NinjectMVC3 зависит от WebActivator. Может быть, в этом проблема.

Вместо того чтобы делать это в предоставленном классе NinjectMV3, попробуйте сделать это в обработчике событий global.asax App_Start.

0 голосов
/ 19 декабря 2011

Вам действительно нужно использовать ConfigurationManager.ConnectionStrings["dEntities"].ConnectionString;?Потому что afaik ConfigurationManager это в значительной степени только что оставлено для обратной совместимости *

Вы можете попробовать использовать var connection = Properties.Settings.Default.dEntities

...