我想在我的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