这个linq查询将如何执行
我有一个检索用户详细信息的功能 我在几块地上种过草。我想知道LINQ将如何执行实际的sql查询这个linq查询将如何执行,linq,entity-framework-4,Linq,Entity Framework 4,我有一个检索用户详细信息的功能 我在几块地上种过草。我想知道LINQ将如何执行实际的sql查询 public User GetUserByEmail(string email) { return _db.Users.Where(x => x.LastName.Decrypt() == "Patel").ToList(); } x.LastName.Decrypt()它会从sql中获取所有记录并对代码端的每个字段执行解密吗 如果我使用 public User GetUserBy
public User GetUserByEmail(string email)
{
return _db.Users.Where(x => x.LastName.Decrypt() == "Patel").ToList();
}
x.LastName.Decrypt()它会从sql中获取所有记录并对代码端的每个字段执行解密吗
如果我使用
public User GetUserByEmail(string email)
{
return _db.Users.Where(x => x.LastName == "Patel".Encrypt()).ToList();
}
哪一个更好调用
中的.Decrypt()
,其中
函数将解密每行上的LastName
。最好使用显示的.Encrypt()方法,该方法将调用一次'Encrypt',并将每个姓氏与“Pate1”的加密字符串进行比较。除非通过调用AsEnumerable()
,ToList
,强制将数据带到内存中,否则很有可能第一个查询根本不起作用,或者ToArray
,因为EF提供程序不知道如何将加密
函数转换为SQL
另一方面,第二个查询应该可以正常工作,因为它是一个字符串到字符串的比较
此外,第二种查询方式允许您在无法使用
解密
对字符串进行“加密”时实施可能更安全的方案,例如,当您存储消息摘要时。请提供解密
定义。您是对的@dasblinkenlight,第一次查询将导致运行时错误