2012-02-14 68 views
5

我想在我的ASP.net MVC 3項目中使用ELMAH和sql server,以及EF 4.3。自動運行ELMAH數據庫腳本

有沒有一種方法可以讓sql腳本自動運行,創建elmah表?

我猜測,遷移可能會完成這項工作,但我還沒有使用過它們。

我正在尋找一個解決方案,您可以檢出解決方案並直接運行它(在sqlexpress本地或全部部署的sql server上運行),並且無需手動運行各種幫助程序sql腳本即可工作

回答

5

添加一個空的基於代碼的遷移(只有在沒有未完成的數據庫更改時鍵入add-migration ElmahSetup)。

然後將呼叫添加到Sql()以運行Up()方法中的elmah。要使解決方案完成,必須將相應的drop語句添加到Down()方法。

+0

你能否提供下來的腳本? – Adaptabi 2013-10-29 10:13:56

+0

我不知道腳本是怎麼樣的 - 但是創建一個'Down()'方法基本上是一套'Drop'語句,用於'Up()'方法中創建的所有內容。 – 2013-10-29 14:33:05

+2

偉大的解決方案@AndersAbel這裏是我的腳本與EF遷移:[鏈接](https://gist.github.com/danmusk/7265235) – DanMusk 2013-11-01 13:17:24

3

我知道這個問題是爲EF 4.3,但如果你正在使用EF 6.1那麼現在是一個NuGet包,將初始化ELMAH表和特效爲你:https://www.nuget.org/packages/Elmah.SqlServer.EFInitializer/。將其添加到您的Web項目。然後它將首先使用EF代碼爲您創建它。它將一個初始化程序添加到App_Start文件夾中,因此實際上不必添加任何代碼。它會將遷移添加到您的數據庫,以確保只添加一次。

+0

這是一個非常好的方法。保存了很多頭痛:) – 2016-06-07 16:31:26