在LINQ中使用个人方法

时间:2017-07-21 14:38:10

标签: c# linq

我想知道是否可以使用我在LINQ中创建的方法?

var usr = db.Utilisateurs.FirstOrDefault(u => u.Login == user.Login &&  CreateASCIIMD5Hash(u.password) == user.password);

但我遇到了错误:

LINQ to Entities无法识别方法System.String CreateASCIIMD5Hash(System.String)方法,并且此方法无法转换为商店表达式。

1 个答案:

答案 0 :(得分:7)

将查询轮换,在输入密码发送到数据库之前对其进行哈希处理:

var hash = CreateASCIIMD5Hash(user.password);

var usr = db.Utilisateurs
    .FirstOrDefault(u => u.Login == user.Login && 
                         u.password == hash);

旁注:哈希函数的名称意味着您正在使用可怕且不安全的哈希方法......