LINQ表达式无法翻译

我在下面的数据库查询中尝试检查是否存在带有链接到特定邮袋的特定条形码的项目。查询如下:

var exists = dbcontext.Items
                .Include(t => t.MailBagItems)
                .ThenInclude(mt => mt.MailBag)
                .AnyAsync(t => t.Barcode.Equals(barcode) &&
                t.MailBagItems.FirstOrDefault() != null && 
t.MailBagItems.FirstOrDefault().MailBag.Number.ToLower().Equals(mailbagNumber.ToLower()));

由于某种原因,我收到以下异常:

System.InvalidOperationException:LINQ表达式不能是   已翻译。以一种可以翻译的形式重写查询,   或通过插入呼叫明确切换到客户评估   AsEnumerable(),AsAsyncEnumerable(),ToList()或   ToListAsync()。

通过删除布尔表达式的一部分,我知道一个事实,问题是我正在检查邮袋编号的最后一个布尔条件。但是,如果删除对ToLower()的调用,则会收到相同的错误。有人可以指出我的表情有什么问题以及如何解决吗?请注意,我正在使用.NET Core 3。

评论