使用EF Core创建架构失败的npgsql

时间:2019-02-15 07:22:19

标签: npgsql

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

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

出现以下错误:

  

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

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

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,可能不是很好,但是可以工作:

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