Понимание способности VS создавать базу данных при первом запуске - PullRequest
0 голосов
/ 07 марта 2012

Я работаю с (.net4 / mvc3) файлом решения, загруженным (из авторитетного источника), где в файле web.config есть строка подключения, но я не вижу четких инструкций по созданию базы данных и там нет включенных ' .mdf. При первой сборке я получил ошибку во время выполнения, связанную с отсутствием прав доступа к базе данных CREATE. Поэтому я создал пустую базу данных и убедился, что строка ссылается на пользователя SQL, который имеет права .dbo / owner на только что созданную базу данных.

Но последующие сборки, похоже, не выполняют тот же самый инициализирующий сценарий БД - где бы он ни хранился.

Где задокументировано это соглашение о первом использовании для создания баз данных?

ТНХ

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Я предполагаю, что вы говорите о Entity Framework, который позволяет вам создавать базу данных из экземпляра объекта ObjectContext, который используется в любом из трех подходов в EF (база данных, модель и код сначала).).

Найдите строку, которая на самом деле вызывает ObjectContext.CreateDatabase().Если используется один из поддерживаемых ADO.NET (SQL Server или SQL Server CE 4.0), это создаст требуемые операторы SQL.Предполагая классический пример Northwind, вы можете найти что-то вроде этого:

NorthwindContext context = new NorthwindContext();
if (!context.DatabaseExists())
{
    context.CreateDatabase();
}

Если это на самом деле приложение с первым кодом, то "lalibi" прав в стратегии инициализации, которая по умолчанию не требует от васявно создать базу данных.(Но я предполагаю, что он на самом деле использует утверждение, очень похожее на мое).

0 голосов
/ 07 марта 2012

Это особенность Entity Framework Code First. Я не уверен, что именно вы ищете, но поиск «Стратегия первой инициализации кода EF» может помочь.

Например, прочитайте эту статью: EF Code Первая инициализация БД с использованием Web.Config

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...