亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果沒有映射,具有動態變量的 Dapper 將無法工作。這會破壞 SQL

如果沒有映射,具有動態變量的 Dapper 將無法工作。這會破壞 SQL

C#
天涯盡頭無女友 2022-10-15 15:12:19
假設我在 MS SQL 中有一個存儲過程?,F在我已經轉移到 MySQL,我想將所有 SQL 查詢保留在 C# asp.net 核心應用程序中。問題始于更大的查詢,其中可能是 SQL 動態內部變量。IE Select @TypeId := TypeId, @StartDate := StartDate  From Test_test  Where Id = @Id 在此示例中,@Id 應該由 Dapper 映射(此變量從 DAL 傳遞到 MySQL 數據庫),但是不應映射 @TypeId 和 @StartId。還有更多僅為 SQL 查詢創建的動態變量映射 null 將中斷查詢,即這里是 SQL 的結果NULL := StartDate代替@StartDate := StartDate如何將 dapper 與 SQL 查詢一起使用,其中查詢正在創建不應由 Dapper 映射的動態變量?
查看完整描述

1 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

只要您包含AllowUserVariables=true在連接字符串中,在使用 Dapper 的查詢中使用 SQL 變量應該完全沒有問題。這允許客戶端庫在您的 SQL 中“忽略”@TypeId并且@StartDate不需要在MySqlCommand.Parameters集合中指定它們。

只要您在傳遞給 Dapper 的匿名對象中不包含具有這些名稱的屬性(即,不要這樣做new { StartDate = DateTime.Now, TypeId = 1 }),Dapper 就不會使用這些名稱創建任何參數,也不會將任何值映射到它們,并且將 SQL 傳遞給 MySQL 服務器以作為服務器端變量進行評估。


查看完整回答
反對 回復 2022-10-15
  • 1 回答
  • 0 關注
  • 180 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號