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

Create Schema using EF Core failing for npgsql

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

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

出现以下错误:

42601: Syntax error at or near

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

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

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