在应用程序启动时创建elmah表和存储过程

时间:2013-06-14 15:54:47

标签: sql-server-2008 asp.net-mvc-4 elmah.mvc

我可以使用脚本创建elmah表和存储过程:

https://code.google.com/p/elmah/downloads/list

使用SQL Server Management Studio。它很好。

但我希望能够从代码中创建该表和存储过程。我应该在哪里以及如何做到这一点?

1 个答案:

答案 0 :(得分:2)

当我使用Entity Framwork Migrations时,我正在我的inicial迁移中的Up()方法运行它(Downloaded ELMAH-1.2-db-SQLServer.sql文件):

 public override void Up()
 {
        string[] ElmahCommands = GetElmahStructureScript();
        foreach (string line in ElmahCommands)
        {
            Sql(line);
        }
        //...
}

public static string[] GetElmahStructureScript()
{
        string sqlConnectionString = new MyDbContext().Database.Connection.ConnectionString;
        Regex regex = new Regex("^GO", RegexOptions.IgnoreCase | RegexOptions.Multiline);
        string[] lines = regex.Split(ElmahScript);
        return lines;
}

static string ElmahScript = @"
CREATE TABLE [dbo].[ELMAH_Error] ...
...
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON";

注意:删除最后一个“GO”语句! (我还删除了脚本的第一部分,以检查兼容性版本......)