【问题标题】:Create elmah table and stored procedures when application starts应用程序启动时创建 elmah 表和存储过程
【发布时间】:2013-06-14 15:54:47
【问题描述】:

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

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

使用 SQL Server Management Studio。而且还不错。

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

【问题讨论】:

  • @X.L.Ant 很抱歉 :)
  • 我想您只需要在 global.asax 文件中添加一些代码,检查数据库中的 SP 存在并在需要时创建它们。

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


【解决方案1】:

当我使用实体框架迁移时,我在初始迁移中通过Up() 方法运行它(已下载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”语句! (我还删除了脚本的第一部分,以检查兼容性版本...)

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多