在C#中具有间隔和除法的MongoDB筛选器

时间:2018-12-18 07:03:59

标签: c# mongodb mongoose filter

我很难对集合类的属性进行除法来过滤间隔。

代码:

B

但是它给static的时间可以为空,因此该查询无法过滤属性数据并给出执行。

欺骗:

if(sPacketMSItem.DollerPerCarat.HasValue && sPacketMSItem.DollerPerCarat.Value > 0)
                filter = filter & Builders<Packet>.Filter.Gte(c => c.NetAmount / c.Weight, sPacketMSItem.DollerPerCarat - 30 )
                                                  & Builders<Packet>.Filter.Lte(c => c.NetAmount / c.Weight, sPacketMSItem.DollerPerCarat + 30);

我不明白为什么会这样。请给我一些解释。

注意: 我有复杂的查询。有50个这样的Builder过滤器

sPacketMSItem.DollerPerCarat

,并且过滤器是上一个(除以一)。所以我很难做。 如果您了解我的问题,请进一步向我解释。

编辑:

我已经用这种方式创建了匹配

Unable to determine the serialization information for c => Convert((c.NetAmount / c.Weight), Nullable`1).

现在像这样使用它

filter = filter & Builders<Packet>.Filter.In(c => c.SerialNo, srNo);

它给了我以下错误。 错误:

  

/Users/lalitdevani/Documents/AasthaSalesWebApi/Aastha/_git/Sales.WebApi/Biz.DAL/MongoRepositoriesCustom/SalesCRMRepository/MarketSheet/MarketSheetRepository.cs(54,54):   错误CS0411:方法的类型参数   无法推断为“ IMongoCollection.AggregateAsync(PipelineDefinition,AggregateOptions,CancellationToken)”   从用法。尝试显式指定类型参数。 (CS0411)   (Biz.DAL)

任何帮助将不胜感激。

0 个答案:

没有答案