簡體   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