2012-03-06 1 views
0

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

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

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

thx

ответ

0

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

Например прочитать эту статью: EF Code First DB Initialization Using Web.Config

+0

Проект Code First - единственная причина, по которой он потерпел неудачу при первом запуске, - это строка подключения, указана имя пользователя/пароль, которые я создал, но не предоставил полномочия «createdb». спасибо – justSteve

0

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

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

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

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

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