尝试将列表中的电子邮件与其他列表匹配时无法创建常量值类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试将列表中的电子邮件与其他列表匹配时无法创建常量值类型相关的知识,希望对你有一定的参考价值。

我试图找出我的数据库表中是否存在我的一个列表中的任何电子邮件。

   var existinctContactAccount = _dataContext.ContactAccounts
            .Include(ca => ca.Contact)
            .Include(ca => ca.ContactAccountTags.Select(cat => cat.ContactTag))
            .Where(ca =>
                ca.AccountId == accountId &&
                addCustomContactAccounts.Any(a => a.Email.Equals(ca.Contact.Email, StringComparison.OrdinalIgnoreCase))).ToList();

这就是我试图这样做但我得到的是“无法创建类型的常量值”。

答案

这不起作用,因为您尝试使用内存中的对象集合,并且无法使用内存中的另一组数据将数据库中的一组数据连接起来。您需要先从DB中选择所有数据,然后从内存中选择。为此,在db查询方法之后使用.ToList()。

所以尝试这样的事情:

var existinctContactAccount = _dataContext.ContactAccounts
            .Include(ca => ca.Contact)
            .Include(ca => ca.ContactAccountTags.Select(cat => cat.ContactTag))
            .ToList()
            .Where(ca =>
                ca.AccountId == accountId &&
                addCustomContactAccounts.Any(a => a.Email.Equals(ca.Contact.Email, StringComparison.OrdinalIgnoreCase))).ToList();

以上是关于尝试将列表中的电子邮件与其他列表匹配时无法创建常量值类型的主要内容,如果未能解决你的问题,请参考以下文章

将一个表格中的电子邮件地址与 1 列中的多个电子表格匹配

将字符串与元组列表匹配

Elixir 列表模式匹配 ~ 在使用列表模式匹配常量后得到 x

如何解决Outlook配置用户邮箱 “该名称不能与地址列表中的名称匹配”错误

模糊逻辑匹配

如何使用地图标记列表创建实时搜索淘汰赛?