2012-03-28 19 views
7

當我運行遷移以通過軟件包管理器控制檯創建數據庫時。有沒有辦法從Seed方法輸出文本到NuGet控制檯?EF遷移,輸出到Nuget控制檯的文本

只需簡單的創建命令:

Update-Database -StartupProjectName "Data" -Verbose 

回答

1

命令

Update-Database -Verbose 

打印在控制檯進行遷移的SQL代碼,但另一種方式是:

Update-Database -Script 

打開另一在Visual Studio中使用sql代碼文件。

那是獲取遷移sql代碼的唯一方法。您不能在調試中獲得遷移的sql代碼,因爲遷移運行時像power shell一樣運行,並且因爲它不運行項目。

編輯:

你不能去到遷移或debbug它,因爲遷移運行就像一個電源外殼命令。

你可以得到的實體框架>遷移源代碼entityframework.codeplex.com

+0

這將返回SQL代碼,但不會輸出在種子方法內發生的情況 – amhed 2013-02-19 21:55:50

+0

@我剛纔談到了:您不能調試,因爲它在電源外殼中,您是否不能進入該方法。如果您獲得實體框架的源代碼,則可以閱讀該方法,因爲遷移運行時像power shell一樣運行,並且位於另一個項目中,而不是在Entity Framework內部 – MayogaX 2013-02-19 23:24:32

2

您可以將每個個體遷移的Up()Down()方法中執行SQL打印命令。

base.Sql("PRINT 'I heart kittens';"); 

這將在「更新數據庫」過程中以'突出顯示的黃色文本輸出'I heart kittens'到軟件包管理器控制檯窗口。