c# - C# Linq 不能使用“大于”运算符
问题描述
每次我尝试在我的函数中运行以下句子时:
var comission = await _context.Comissions.FirstOrDefaultAsync(c =>
c.CountryReceiverId == receiverCountryId &&
c.CountrySenderId == senderCountryId);
var comissionRange = await _context.ComissionRanges
.Where(c => c.MinAmount <= amount && c.MaxAmount >= amount)
.FirstOrDefaultAsync(c => c.ComissionId == comission.Id);
它给了我以下错误:
'DbSet<ComissionRange> .Where(c => c.MinAmount <= __amount_0 && c.MaxAmount >= __amount_0)'
无法翻译LINQ 表达式。以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估。
该错误专门发生在comissionRange
查询中,我注意到以下内容,例如>=
or<=
运算符是否存在问题,例如,如果我像这样修改此类查询:
var comissionRange = await _context.ComissionRanges
.Where(c => c.MinAmount == 501 && c.MaxAmount == 1000)
.FirstOrDefaultAsync(c => c.ComissionId == comission.Id);
它完美无缺!就像问题是因为我使用了>=
and<=
运算符,那么重写此查询并使其工作的正确方法是什么?
解决方案
推荐阅读
- swift - mac Catalyst下如何获取sceneWindow的大小和位置
- mysql - 我无法合并两个表
- python - QValueAxis 显示乱码(中文)?
- laravel - [Route: blalba.Destroy] 缺少 Require 参数
- c++ - 在 Word 中迭代段落
- android - 工作管理器有时在 Android Pie 中不起作用
- kubernetes - 使用常规通道作为发布通道向现有集群添加新的 Kubernetes 节点池
- python - 在 Airflow Dags 中使用“DataProcSparkOperator”时出现异常
- flutter - 如何在flutter中使用http包发送标头中的参数
- sql - 将 Azure SQL db 与使用 Nodejs 的 reactjs 应用程序一起使用