在LINQ中使用个人方法

Kam*_*mil -2 c# linq

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

var usr = db.Utilisateurs.FirstOrDefault(u => u.Login == user.Login &&  CreateASCIIMD5Hash(u.password) == user.password);
Run Code Online (Sandbox Code Playgroud)

但我有一个错误:

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

Dav*_*idG 7

切换查询,将输入密码哈希,然后再将其发送到数据库:

var hash = CreateASCIIMD5Hash(user.password);

var usr = db.Utilisateurs
    .FirstOrDefault(u => u.Login == user.Login && 
                         u.password == hash);
Run Code Online (Sandbox Code Playgroud)

旁注:哈希函数的名称意味着你使用了一种糟糕且不安全的哈希方法......

  • 没有盐 - 人们甚至不必努力解决这个问题.一个简单的彩虹表将立即检索密码 (2认同)