在開發好友系統時, 做了個功能叫做推薦名單, 也就是將最近對戰的玩家記錄到數據表上, 再推給客戶端, 但在獲取數據時發現必須過濾掉已經添加的清單, 索性在表格上添加了一個字段來紀錄是否有效 後來發現Chloe處理這段很麻煩, 沒查到官方有 replace 的功能, 所以自己用了 procedure 來處理, 有點久沒用研究了下 Chole 怎麼調用 官方文檔說明 https://github.com/shuxinqin/Chloe/wiki/Oracle-procedure 兩個寫法不一樣, dbContext . SqlQuery < Person > 是直接獲取 Procedure 返回數據的, 就譬如 procedure 最後面寫了 select * from user limit 1; 可以透過這個方式獲取返回的 user 資料, 而 ExecuteNonQuery ( " Proc_GetPersonName " , CommandType . StoredProcedure , id , outputName ) 則是透過 Procedure 的 out 獲取數據 我們在更新 recent 表格同時也要獲取 recent 數據, 作法如果 DbParam iUserId = new DbParam("@iUserId", userId); DbParam iRUserId = new DbParam("@iRUserId", recentUserId); DbParam iState = new DbParam("@iState", 1); dbContext.SqlQuery<Tbl_Recent>("proc_update_recent", CommandType.StoredProcedure, iUserId, iRUserId, iState); 這是一個沒有 return 的 procedure 調用方式, Procedure 如下 CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `proc_update_recent`( IN `iUserId` int, IN `...