2012-02-13 2 views
0

Мне интересно знать, есть ли разумные способы создания вашей собственной БД, CREATE MyDatabase, CREATE Table1 внутри Entity DbContext, mabye InitializeDatabase метод? Я знаю, что EF 4.1 с POCO сделает это для меня, но теперь кажется, что если я хочу генерировать некоторые события во время инициализации DB (см. Редактирование), я, вероятно, хочу создать БД в моем коде.Кадровая структура Entity, POCO, создайте свою собственную БД по коду?

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

Я пробовал:

public void InitializeDatabase(MyContext context) 
{ 

    context.Database.ExecuteSqlCommand("Query to create table"); 
} 

Но проблема в том, что мне нужно создать базу данных первого для создания таблиц, но как это сделать? Или есть лучшие способы делать то, что я хочу?

EDIT:

Да, я знаю ПОКО будет делать это для меня автоматически, но, к сожалению, кажется, что мне нужно/хотят создать базу данных и таблицы по моей коде с POCO, причина в том, что я хочу показать прогресс во время создания/инициализации БД? Единственный способ, с помощью которого я могу выйти, - создать базу данных и создать таблицы, хотя мой собственный код и генерировать события после создания каждой таблицы.

ответ

0

Entity Framework попытается создать базу данных, настроенную вами в строке подключения. Просто убедитесь, что пользователь, который подключается к серверу, имеет права на создание базы данных.

0

Что вы делаете, выглядит сначала с помощью кода Entity Framework.

Вы можете создать базу данных и/Таблицы в Model Builder Seed, если хотите.

Если ваша цель состоит в том, чтобы сообщать пользователю о ходе работы, вам не нужно создавать базу данных, используя свои собственные запросы. Вы можете сделать это, используя ModelBuilderOnModelCreating.

0

Да, я знаю ПОКО будет делать это для меня автоматически, но, к сожалению, кажется, что мне нужно создать базу данных и таблицы самостоятельно, даже с POCO

Неа! По крайней мере, если вы используете Entity Framework 4 (версия поставляется с .Net 4.0, для чего требуется Visual Studio 2010. VS 2008 не может использовать .Net 4.0).

Это называется Code-First development. В основном вы пишете свои классы данных, а Entity Framework автоматически определяет структуру базы данных на основе отношений классов, имен свойств и некоторых дополнительных атрибутов, специфичных для EF. Затем он автоматически создает базу данных для вас (хотя поддержка автоматических миграций минимальна ... for now).

Есть несколько простых руководств по Code First here и here.

+0

Благодарим вас за ссылку. У меня POCO работает нормально, и по умолчанию она создала для меня структуру БД. Теперь моя проблема в том, что если я хочу генерировать DB и таблицы, поскольку мне нужно генерировать события после создания каждой таблицы, как я могу это сделать? –

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