【问题标题】:Create Schema using EF Core failing for npgsql使用 EF Core 为 npgsql 创建架构失败
【发布时间】:2019-02-15 07:22:18
【问题描述】:

我正在尝试使用上下文创建架构。

Database.ExecuteSqlCommand(“CREATE SCHEMA @p0”, <schemaNameParameter>)

它给出了以下错误:

42601:$1 或附近的语法错误

我尝试了针对 DML 的类似问题给出的其他解决方案,但它们在我的情况下不起作用。

【问题讨论】:

    标签: npgsql


    【解决方案1】:

    我找到了一个解决方案,可能不是很优雅,但有效:

    var con = _context.Database.GetDbConnection();
    con.Open();
    try
    { 
        using (var cmd = con.CreateCommand())
        {
            cmd.CommandText = $"CREATE SCHEMA IF NOT EXISTS \"<schemaName\">";
            await cmd.ExecuteNonQueryAsync();
        }
    }
    finally
    {
        con.Close();
    }
    

    PS:仍在尝试找到一个解决方案,该解决方案采用参数而不是模式名称的内联值。 (注意:我在执行此命令之前使用正则表达式验证以确保没有注入尝试)

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 2017-11-30
      • 2018-08-31
      • 1970-01-01
      • 2021-12-26
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多