2016-06-03 3 views
0

Я хотел бы использовать Первичные миграции данных Entity Framework и хочу, чтобы база данных находилась в папке App_Data. Если я использую только код сначала без строки подключения, база данных помещается в папку пользователей компьютера. Я хотел бы сохранить базу данных с проектом Visual Studio. Я думал, что строка подключения ниже может работать, но это не так.Могу ли я указать, где я хочу базу данных с Первыми миграциями данных кода?

<add name="BOEContext" 
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\BOEContext.mdf;Integrated Security=True" 
providerName="System.Data.SqlClient" 
/> 

ответ

1

Это должно сделать вас, поместите его в (строитель DbModelBuilder) OnModelCreating контекста

AppDomain.CurrentDomain.SetData("DataDirectory", "the PATH to the mdf"); 

Или вы можете просто сделать что-то вроде этого

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=D:\TQL.mdf;Initial Catalog=XXX;Integrated Security=True" providerName="System.Data.SqlClient" /> 

Проблема, с которой я всегда сталкивался, заключается в том, что там, где выполняется миграция, определяется, где mdf-файл e поэтому, если я запустил миграцию из окна командной строки VS против проекта репо, он окажется в корне этих проектов, но если я запустил его, используя автоматические миграции при запуске веб-проекта с использованием этого репо, он попадет в веб-проекты app_data которая затем прикрутила его из командной строки VS.

командная строка переопределение должно быть что-то вроде

Update-Database -Verbose -ConnectionString "CONNECTIONSTRING" -ConnectionProviderName "System.Data.SqlClient" 
+0

Есть ли способ, чтобы указать местоположение базы данных при выполнении миграции из командной строки VS? то есть c: \ databases \ mydatabase.mdf –

+0

Обновленный ответ с командой для переопределения настроек файла конфигурации. –

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