如何使用C#/ Entity Framework在SQL DB(SQL Server 2008)中有效存储64位哈希值?更具体地说,您将使用什么数据类型将哈希值存储在数据库中,以及如何将原始哈希值转换为值?
正在计算原始哈希值并将其存储在BitArray中:
BitArray hash = CalculateHashValue(); // Returns a BitArray(64)
存储此值的一个选项是使用二进制数据类型(64)。然后我可以使用以下内容将哈希添加到数据库中:
byte[] hashAsByteArray = new byte[8];
dhash.CopyTo(hashAsByteArray, 0);
MyDbObject mdo = new MyDbObject();
mdo.hash = hashAsByteArray;
db.MyDbObject.AddObject(mdo);
db.SaveChanges();
从此选项中存储在数据库中的结果值似乎在末尾填充了大量0,这看起来并不能有效利用空间(例如0x0CAA0820848200800000000000000000000000000000000000000000000000000000000000000000000000000000)
您会使用哪些更好的方法?谢谢!