2012-01-10 84 views
3

使用PetaPoco,如何使用鍵入的參數調用存儲過程? 在C#我不喜歡這樣寫道:帶鍵入參數的PetaPoco查詢

cmd.Parameters.Add("@email", SqlDbType.NVarChar).Value = email; 

回答

5

退房的documentation進一步的細節,但這裏是一個提取物。

http://www.toptensoftware.com/Articles/114/PetaPoco-What-s-new-in-v4-0

支持IDbParameters對象爲SQL參數

PetaPoco現在支持直接傳遞IDbParameter對象到 查詢。如果PetaPoco沒有正確映射一個屬性,這很方便。

例如,除非使用正確的 類型配置參數,否則SQL Server驅動程序不會處理將DbNull分配給012BVarBinary列。要解決這一點,你現在可以這樣做:

databaseQuery.Execute("insert into temp1 (t) values (@0)", new SqlParameter() { SqlDbType = SqlDbType.VarBinary, Value = DbNull.Value });

這樣的一個有趣的副作用是 你也可以從PetaPoco.IMapper 接口返回全局覆蓋PetaPoco默認的IDbParameter參數映射 功能。

+0

我剛剛向PetaPoco(https://github.com/CollaboratingPlatypus/PetaPoco/pull/272)添加了一個pull請求,以糾正在查詢中多次使用一個IDbParameter時的錯誤。由於參數不是值類型,所以在PetaPoco中將一個參數擴展到許多內容會導致錯誤。 – David 2016-03-22 03:33:29