2012-02-14 106 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