我想在我的ASP.net MVC 3項目中使用ELMAH和sql server,以及EF 4.3。自動運行ELMAH數據庫腳本
有沒有一種方法可以讓sql腳本自動運行,創建elmah表?
我猜測,遷移可能會完成這項工作,但我還沒有使用過它們。
我正在尋找一個解決方案,您可以檢出解決方案並直接運行它(在sqlexpress本地或全部部署的sql server上運行),並且無需手動運行各種幫助程序sql腳本即可工作
我想在我的ASP.net MVC 3項目中使用ELMAH和sql server,以及EF 4.3。自動運行ELMAH數據庫腳本
有沒有一種方法可以讓sql腳本自動運行,創建elmah表?
我猜測,遷移可能會完成這項工作,但我還沒有使用過它們。
我正在尋找一個解決方案,您可以檢出解決方案並直接運行它(在sqlexpress本地或全部部署的sql server上運行),並且無需手動運行各種幫助程序sql腳本即可工作
添加一個空的基於代碼的遷移(只有在沒有未完成的數據庫更改時鍵入add-migration ElmahSetup
)。
然後將呼叫添加到Sql()
以運行Up()
方法中的elmah。要使解決方案完成,必須將相應的drop語句添加到Down()
方法。
我知道這個問題是爲EF 4.3,但如果你正在使用EF 6.1那麼現在是一個NuGet包,將初始化ELMAH表和特效爲你:https://www.nuget.org/packages/Elmah.SqlServer.EFInitializer/。將其添加到您的Web項目。然後它將首先使用EF代碼爲您創建它。它將一個初始化程序添加到App_Start文件夾中,因此實際上不必添加任何代碼。它會將遷移添加到您的數據庫,以確保只添加一次。
這是一個非常好的方法。保存了很多頭痛:) – 2016-06-07 16:31:26
你能否提供下來的腳本? – Adaptabi 2013-10-29 10:13:56
我不知道腳本是怎麼樣的 - 但是創建一個'Down()'方法基本上是一套'Drop'語句,用於'Up()'方法中創建的所有內容。 – 2013-10-29 14:33:05
偉大的解決方案@AndersAbel這裏是我的腳本與EF遷移:[鏈接](https://gist.github.com/danmusk/7265235) – DanMusk 2013-11-01 13:17:24