我想知道是否可以使用我在LINQ中创建的方法?
var usr = db.Utilisateurs.FirstOrDefault(u => u.Login == user.Login && CreateASCIIMD5Hash(u.password) == user.password);
但我遇到了错误:
LINQ to Entities无法识别方法System.String CreateASCIIMD5Hash(System.String)
方法,并且此方法无法转换为商店表达式。
答案 0 :(得分:7)
将查询轮换,在输入密码发送到数据库之前对其进行哈希处理:
var hash = CreateASCIIMD5Hash(user.password);
var usr = db.Utilisateurs
.FirstOrDefault(u => u.Login == user.Login &&
u.password == hash);
旁注:哈希函数的名称意味着您正在使用可怕且不安全的哈希方法......