當我運行遷移以通過軟件包管理器控制檯創建數據庫時。有沒有辦法從Seed方法輸出文本到NuGet控制檯?EF遷移,輸出到Nuget控制檯的文本
只需簡單的創建命令:
Update-Database -StartupProjectName "Data" -Verbose
當我運行遷移以通過軟件包管理器控制檯創建數據庫時。有沒有辦法從Seed方法輸出文本到NuGet控制檯?EF遷移,輸出到Nuget控制檯的文本
只需簡單的創建命令:
Update-Database -StartupProjectName "Data" -Verbose
我不認爲你可以直接輸出,但是你可以使用跟蹤和調試命令,並附VS的另一個實例來查看輸出。
來自這個問題摘自: Where can I find the console or debug output from code executed in the package manager window?
命令
Update-Database -Verbose
打印在控制檯進行遷移的SQL代碼,但另一種方式是:
Update-Database -Script
打開另一在Visual Studio中使用sql代碼文件。
那是獲取遷移sql代碼的唯一方法。您不能在調試中獲得遷移的sql代碼,因爲遷移運行時像power shell一樣運行,並且因爲它不運行項目。
編輯:
你不能去到遷移或debbug它,因爲遷移運行就像一個電源外殼命令。
你可以得到的實體框架>遷移源代碼entityframework.codeplex.com
您可以將每個個體遷移的Up()
或Down()
方法中執行SQL打印命令。
base.Sql("PRINT 'I heart kittens';");
這將在「更新數據庫」過程中以'突出顯示的黃色文本輸出'I heart kittens'到軟件包管理器控制檯窗口。
這將返回SQL代碼,但不會輸出在種子方法內發生的情況 – amhed 2013-02-19 21:55:50
@我剛纔談到了:您不能調試,因爲它在電源外殼中,您是否不能進入該方法。如果您獲得實體框架的源代碼,則可以閱讀該方法,因爲遷移運行時像power shell一樣運行,並且位於另一個項目中,而不是在Entity Framework內部 – MayogaX 2013-02-19 23:24:32