gpt4 book ai didi

c# - LINQ to Entities 无法识别方法 'System.String Decrypt(System.String, System.String)' 方法

转载 作者:行者123 更新时间:2023-11-30 23:20:48 24 4
gpt4 key购买 nike

我正在尝试通过使用电子邮件进行过滤来在 combobox 中显示电子邮件。我的问题是我的数据在用户表中被加密。

当我尝试解密它时出现此错误:

LINQ to Entities does not recognize the method 'System.String Decrypt(System.String, System.String)' method, and this method cannot be translated into a store expression

我该如何解决这个错误?

这是我的 Lookup 类

    public class Lookup
{
public long boundvalue { get; set; }
public string boundtext { get; set; }
}

这是我要过滤的代码

    public IEnumerable<Lookup> getUser(string fText)
{
var ret = new List<Lookup>
{
new Lookup
{
boundvalue = 0,
boundtext = ""
}
};
if (!string.IsNullOrEmpty(fText))
{
ret.AddRange(_entities.Users.Where(x =>EncDec.Decrypt(x.UserVar01.Trim().Replace("_",string.Empty),
Enums.EncDecSecKeyToString(Enums.EncDecSecKey.Email)).Contains(fText.Trim()))
.Select(select => new Lookup
{
boundvalue = select.UserID,
boundtext = EncDec.Decrypt(select.UserVar01.Trim().Replace("_", string.Empty),
Enums.EncDecSecKeyToString(Enums.EncDecSecKey.Email)),
}));

}
return ret;
}

最佳答案

请记住,末尾的 Linq to Entities 查询已转换为 sql 表示法,但错误是说当时不支持 System.String Decrypt 进行转换。这就是为什么我担心你不能在服务器端应用过滤器,你需要在内存中进行。为此,请使用 AsEnumerable 扩展方法切换到 Linq to Objects

   ret.AddRange(_entities.Users.AsEnumerable().Where(x =>EncDec.Decrypt(x.UserVar01.Trim().Replace("_",string.Empty), 
Enums.EncDecSecKeyToString(Enums.EncDecSecKey.Email)).Contains(fText.Trim()))
.Select(select => new Lookup
{
boundvalue = select.UserID,
boundtext = EncDec.Decrypt(select.UserVar01.Trim().Replace("_", string.Empty),
Enums.EncDecSecKeyToString(Enums.EncDecSecKey.Email)),
}));

关于c# - LINQ to Entities 无法识别方法 'System.String Decrypt(System.String, System.String)' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com