假設我在 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 服務器以作為服務器端變量進行評估。
- 1 回答
- 0 關注
- 180 瀏覽
添加回答
舉報
0/150
提交
取消
