我试图使用实体框架将散列和盐类存储在数据库中。但是当我试图调用这个代码来返回一个盐类时。
var salt = (from u in db.Users
join p in db.Passwords on u.Name equals p.UserName
where u.Name == username
select p.Salt).First();我会抛出这个异常: System.InvalidCastException:“无法将'System.String‘类型的对象强制转换为’System.Byte[]‘。”
我的密码实体如下所示:
class Password
{
[Key]
public string UserName { get; set; }
public byte[] Hash { get; set; }
public byte[] Salt { get; set; }
public User User{ get; set;}
}发布于 2020-10-13 16:05:24
您的表的列可能是varchar或类似的内容,而不是二进制/var二进制数据类型,或者是数据库服务器用于存储二进制数据的任何术语。
如果您正在使用EF核心,请参见值转换器。有一个可用的StringToBytesConverter。
https://stackoverflow.com/questions/64338956
复制相似问题