2016-02-12 8 views
1

Мой DB класса Context, как показано ниже:Обновление сценария через Entity Framework

Public Class DataContext 
    Inherits DbContext 

    Public Sub New() 
      MyBase.New("WorkOrderConnectionString") 

    End Sub 
End Class 

А то у меня есть строка подключения в файле конфигурации этой DLL.

<connectionStrings> 
    <add name="WorkOrderConnectionString" connectionString="Server=(local); Database=db1;uid=user1;password=password1" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

Я добавил два класса к классу и хочу сгенерировать для него SQL-скрипт обновления. Но когда я использую следующий оператор, он генерирует скрипт для всей БД.

Update-Database -Script 

Каков путь поэтому он должен генерировать только два новых поля .. что-то, как показано ниже Alter таблице .... Добавить столбец ... Использование следующих Entity Framework версии !.

Продолжительность Версия: v4.0.30319 Версии: 6.0.0.0

Приветствия

ответ

0

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

Выполнить эту команду, чтобы сделать первоначальный снимок:

add-migration Initial -IgnoreChanges 
update-database 

https://msdn.microsoft.com/en-us/data/dn579398.aspx?f=255&MSPPError=-2147217396#option1

Теперь вы можете изменить свою модель и сценарий будет разницей между последней миграцией и текущей миграцией.

Если у вас есть серия миграций, вы можете использовать параметры -SourceMigration и -TargetMigration, чтобы сгенерировать только эти изменения. https://msdn.microsoft.com/en-us/data/jj591621.aspx#script

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