一千萬個為什麽

搜索

使用Entity Framework使用固定長度二進制參數調用存儲過程


我使用Entity Framework調用具有固定長度二進制參數的存儲過程時遇到問題。無論使用什麽大小的字節數組來調用函數import,存儲過程最終都會被8000字節的數據調用。舉個例子,這是我正在使用的代碼。

byte[] cookie = new byte[32];  
 byte[] data = new byte[2];  
entities.Insert("param1", "param2", cookie, data);

The parameters are nvarchar(50), nvarchar(50), binary(32), varbinary(2000)

當我通過SQL分析器運行代碼時,我得到了這個結果。

exec [dbo].[Insert] @param1=N'param1',@param2=N'param2',@cookie=0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

[SNIP因為16000個零]

,@data=0x0000

binary(32) cookie之外,所有參數都通過了ok。 varbinary(2000)似乎工作正常,並保持正確的長度。

有沒有辦法防止額外的數據被發送到SQL服務器?這似乎是對網絡資源的巨大浪費。

最佳答案

使用varbinary而不是binary。對我有用

轉載註明原文: 使用Entity Framework使用固定長度二進制參數調用存儲過程

猜你喜歡