подключение к SQL Server 2008 с использованием MVC 3 ASP.net - PullRequest
2 голосов
/ 17 января 2012

Я новичок в ASP.net MVC 3 (с использованием VB) и пытаюсь создать приложение, которое будет подключаться к базе данных сервера SQL 2008.Я прошел учебник (учебник Movie DB от Microsoft ASP.net), но в учебнике используется компактная версия SQL.Я испытываю трудности с подключением.Правильно ли я полагаю, что после создания модели я смогу просто подключиться к SQL 2008, изменив строку подключения в файле Web.config, который находится в корне папки приложения?Я удалил базу данных sql ce из папки App_Data.В Microsoft SQL Server Management Studio я создал новую базу данных.Затем я добавил это в свой файл Web.config:

      <connectionStrings>
<add name="ConnectionName"
     providerName="System.Data.SqlClient"
     connectionString="Data Source=DELERIUM-PC;Initial Catalog=iDjItDb;Integrated         Security=True" />
       </connectionStrings>

Когда я запускаю приложение и пытаюсь просмотреть контроллер, связанный с моделью, я получаю эту ошибку:

Модель, поддерживающая контекст 'iDjItDBContext', изменилась с момента создания базы данных.Либо удалите / обновите базу данных вручную, либо вызовите Database.SetInitializer с экземпляром IDatabaseInitializer.Например, стратегия DropCreateDatabaseIfModelChanges автоматически удалит и повторно создаст базу данных и при необходимости заполнит ее новыми данными.

Что мне нужно сделать, чтобы подключиться и работать с базой данных SQL 2008 года?

Спасибо Джейсон

1 Ответ

3 голосов
/ 17 января 2012

Вы можете удалить IncludeMetadataConvention в своем классе контекста, если вы уверены, что ваша модель совместима с базой данных.

public class iDjItDBContext : DBContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
    }
}

В противном случае вам необходимо установить инициализатор в методе Application_Start()Ваш Global.asax.cs файл.

Database.SetInitializer<iDjItDBContext>(
        new DropCreateDatabaseIfModelChanges<iDjItDBContext>());

В противном случае вы можете выбрать опцию Миграции , когда внешний инструмент сгенерирует скрипт изменения.

Редактировать Измените имя строки подключения на iDjItDBContext, чтобы имя совпадало с именем DbContext.

<connectionStrings>
<add name="iDjItDBContext"
     providerName="System.Data.SqlClient"
     connectionString="Data Source=DELERIUM-PC;Initial Catalog=iDjItDb;Integrated         Security=True" />
       </connectionStrings>

Или создайте конструктор в своем контексте и передайте имя строки подключения.

public class iDjItDBContext : DBContext
{
     public iDjItDBContext() : base("ConnectionName")
     {
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...