如何将 ulong 转换为 rowversion
how to convert ulong to rowversion
参考converting sql server rowversion to long or ulong?
我可以通过代码将 SQL RowVersion 转换为 ulong:
static ulong BigEndianToUInt64(byte[] bigEndianBinary)
{
return ((ulong)bigEndianBinary[0] << 56) |
((ulong)bigEndianBinary[1] << 48) |
((ulong)bigEndianBinary[2] << 40) |
((ulong)bigEndianBinary[3] << 32) |
((ulong)bigEndianBinary[4] << 24) |
((ulong)bigEndianBinary[5] << 16) |
((ulong)bigEndianBinary[6] << 8) |
bigEndianBinary[7];
}
现在遇到一个问题,如何把ulong转成byte[8]?
我将 rowversion 的值保存到一个文件中,然后读取它并使用它进行查询。查询参数应该是 byte[] ,而不是 ulong 。否则,将引发错误。
我从BigEndian.GetBytes Method (Int64)
那里得到了答案
谢谢大家。
public static byte[] GetBytes(this ulong value)
{
return new[]
{
(byte)(value >> 56),
(byte)(value >> 48),
(byte)(value >> 40),
(byte)(value >> 32),
(byte)(value >> 24),
(byte)(value >> 16),
(byte)(value >> 8),
(byte)(value)
};
}
参考converting sql server rowversion to long or ulong? 我可以通过代码将 SQL RowVersion 转换为 ulong:
static ulong BigEndianToUInt64(byte[] bigEndianBinary)
{
return ((ulong)bigEndianBinary[0] << 56) |
((ulong)bigEndianBinary[1] << 48) |
((ulong)bigEndianBinary[2] << 40) |
((ulong)bigEndianBinary[3] << 32) |
((ulong)bigEndianBinary[4] << 24) |
((ulong)bigEndianBinary[5] << 16) |
((ulong)bigEndianBinary[6] << 8) |
bigEndianBinary[7];
}
现在遇到一个问题,如何把ulong转成byte[8]? 我将 rowversion 的值保存到一个文件中,然后读取它并使用它进行查询。查询参数应该是 byte[] ,而不是 ulong 。否则,将引发错误。
我从BigEndian.GetBytes Method (Int64)
那里得到了答案谢谢大家。
public static byte[] GetBytes(this ulong value)
{
return new[]
{
(byte)(value >> 56),
(byte)(value >> 48),
(byte)(value >> 40),
(byte)(value >> 32),
(byte)(value >> 24),
(byte)(value >> 16),
(byte)(value >> 8),
(byte)(value)
};
}