c#linq不使用“大于”运算符

8wtpewkr  于 2021-08-13  发布在  Java
关注(0)|答案(0)|浏览(219)

每次我尝试在函数中运行以下语句时:

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

它给了我以下错误:
linq表达式 'DbSet<ComissionRange> .Where(c => c.MinAmount <= __amount_0 && c.MaxAmount >= __amount_0)' 无法翻译。以可以翻译的形式重写查询,或者通过插入对asenumerable()、asAsAsyncEnumerable()、tolist()或toListSync()的调用显式切换到客户端计算。
错误发生在 comissionRange 我注意到如下问题,比如 >= 或者 <= 运算符,例如,如果我修改这样的查询:

var comissionRange = await _context.ComissionRanges
  .Where(c => c.MinAmount == 501 && c.MaxAmount == 1000)
  .FirstOrDefaultAsync(c => c.ComissionId == comission.Id);

它工作得很好!好像是因为我在使用 >= 以及 <= 运算符,重写此查询并使其工作的正确方法是什么?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题