postgresql 实体框架中的动态表

cetgtptt  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(144)

表必须动态创建。表名是动态的(发送到API),列是静态的。每次调用API时,都会创建一个具有不同名称的新表。
有可能在实体框架中做到吗?如果可以-怎么做?DB是Postgress。谢谢
ADO是不被接受的方式,我需要用实体框架来做,我试着写了一个迁移,当API被调用时就会被激活,但是似乎只有当迁移先运行时才能运行。

41zrol4v

41zrol4v1#

如果您有一堆列相同的表,并且希望在运行时在它们之间切换,则可以使用SQL Queries

var blogs = context.Blogs
    .FromSql($"SELECT * FROM {QuoteName(tableName)}")
    .ToList();

其中QuoteName可防止SQL注入攻击。此示例适用于SQL Server:

private static string QuoteName(string identifier)
{
    var sb = new StringBuilder(identifier.Length + 3, 1024);
    sb.Append('[');
    foreach (var c in identifier)
    {
        if (c == ']')
            sb.Append(']');
        sb.Append(c);
    }
    sb.Append(']');
    return sb.ToString();
}

相关问题