繁体   English   中英

在dapper查询中传递字段名称

[英]Pass field name in dapper query

我正在创建一个函数,用于检查数据库中是否检查了维护日。 每个列都是Maintenance + DayName(MaintenanceSunday,MaintenanceMonday等)。

看起来,无论何时传入对象,它都想获取被检查内容的值,而不是“插入”字符串。 有没有一种方法可以安全地实现这一点(即不是String.Format(“ where {0} = ...”,field))? 我真的不想在这里打开SQL注入的可能性(尽管有一个更早的检查来查看q.ToUpper()是否在“ SUNDAY”,“ MONDAY”等列表中,所以我想是保障)

我试图这样做,但是炸弹试图将“ Maintenancesunday”与“ true”(位)进行比较:

string field = "Maintenance" + q; // q = "sunday"
return conn.Query<Data>("SELECT * FROM Data WHERE @Field = @Value", new { Field = field, Value = true }).ToList();

Dapper仅使用ADO.NET,它不支持参数化的列名。 我想您需要一些硬编码才能完成此任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM