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

问题描述 投票:-1回答:1

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

   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();

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

c# entity-framework linq lambda
1个回答
0
投票

这不起作用,因为您尝试使用内存中的对象集合,并且无法使用内存中的另一组数据将数据库中的一组数据连接起来。您需要先从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();
© www.soinside.com 2019 - 2024. All rights reserved.