gpt4 book ai didi

c# - dapper 可以替换表名吗?

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:30 26 4
gpt4 key购买 nike

我曾期望 dapper-dot-net 可以像这样替换查询中的表名:

connection.Query("SELECT * FROM @Table WHERE [Id] = @Id", new {Table = tb, Id = id});

不过,好像不能替换表名。这是预期的限制吗?

最佳答案

除了“in”的唯一异常(exception)(dapper 提供了一些巫术),dapper 是直接的 ADO.NET 工具 - 它不会更改查询。所以真正的问题是:你能在 SQL 中参数化表名吗?在我所知道的每个数据库中:不,你不能——所以这是无效的。 Dapper 不会尝试解决该问题。

也许考虑 string.Format,记住:

  • 将合法的表名列入白名单以防止SQL注入(inject)
  • 在表名周围使用完整的[方括号]表示法以允许所有可能的名称

关于c# - dapper 可以替换表名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16992657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com