2015-06-19 65 views
0

我使用這個代碼DbExtensions - WHERE與字節[]值(時間戳)參數

updateBuilder 
    .UPDATE("myTable") 
    .SET("UpdatedDate = {0}", updated.UpdatedDate) 
    .SET("UpdatedByUserId = {0}", updated.UpdatedByUserId) 
    .WHERE("Id = {0}", updated.Id) 
    .WHERE("RowVersion = {0}", updated.RowVersion); 

而且它生成的SQL是這樣

exec sp_executesql N'UPDATE myTable 
SET UpdatedDate = @p0, UpdatedByUserId = @p1 
WHERE Id = @p2 AND RowVersion = @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10 

我猜測,它被加入一個值爲字節數組中的每個元素,作爲屬性RowVersion = byte [],但我該如何解決這個問題?

在實體框架的byte []在SQL中加入這樣的

@3=0x0000000000560F94 

我怎樣才能讓我的字節數組是這個?

+0

你知道這意味着什麼'{0:X}'..在這裏閱讀回答你的問題/關於十六進制值的解釋http://msdn.microsoft.com/en-us/library/s8s7t687( v = vs80).aspx – MethodMan

+0

谷歌搜索如何將字節[]轉換爲十六進制字符串 – MethodMan

+0

RowVersion的底層數據類型是什麼?字節或字符串? –

回答

1

這是一個已知問題,答案是here

+0

謝謝最大,找到它並修復。 – Gillardo