表必须动态创建。表名是动态的(发送到API),列是静态的。每次调用API时,都会创建一个具有不同名称的新表。有可能在实体框架中做到吗?如果可以-怎么做?DB是Postgress。谢谢ADO是不被接受的方式,我需要用实体框架来做,我试着写了一个迁移,当API被调用时就会被激活,但是似乎只有当迁移先运行时才能运行。
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(); }
1条答案
按热度按时间41zrol4v1#
如果您有一堆列相同的表,并且希望在运行时在它们之间切换,则可以使用SQL Queries。
其中QuoteName可防止SQL注入攻击。此示例适用于SQL Server: