2016-02-12 145 views
1

我的DB Context類如下:更新腳本通過實體框架

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腳本。但是當我使用下面的語句時,它是爲整個DB生成腳本。

Update-Database -Script 

有什麼辦法,所以應該只產生兩個新的領域..東西如下 修改表....添加列... 使用下面的Entity Framework版本!

運行時版本:v4.0.30319 版本:6.0.0.0

乾杯

回答

0

實體框架做了比較,以生成腳本,所以如果你有一個現有的數據庫,你需要創建的初始快照所以只有後續的變更纔會包含在內。

運行這個命令使初始快照:

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