c# - C# MongoDb 驱动程序 - 通过可空属性安全检查进行过滤
问题描述
我使用 .Net Core 3.1 和 MongoDB 驱动程序,并且我有一个方法,我想通过属性查找但该属性可以为空。方法如下:
public async Task<List<MyDataModel>> GetCustomersAsync(IEnumerable<long> ids)
{
var filterDefinition = new FilterDefinitionBuilder<MyDataModel>();
var idsFilter = filterDefinition.In(x => x.Id.Value, mdmIds);
return await this.Table.Find(idsFilter).ToListAsync();
}
事情在 x.Id.Value 上,如果我不执行此操作,则会引发编译错误 Cannot convert lambda expression to type 'FieldDefinition<MyDataModel, long> 因为它不是委托类型。
如果我将 id 的类型从 long 更改为 long?它没有抱怨,但我在这里错过了什么或做错了什么吗?
谢谢
解决方案
在该过滤器之前,只需添加过滤器,它将过滤掉所有具有 null 作为 _id 的文档。我认为它被称为 Ne => filterDefinition.Ne((x => x.Id.Value, null)。
推荐阅读
- perl - 如何在 Perl 中反转句子中的单词?
- javascript - 变量访问Javascript
- javascript - 下载 Excel 文件后,浏览器未结束加载
- reactjs - react-native - 道具类型失败:提供给“FontAwesomeIcon”的道具“样式”无效
- php - 如何从数组中排除某些元素
- python - Django OpenCV 异常值:libSM.so.6:无法打开共享对象文件:没有这样的文件或目录
- python-3.x - 如何计算一组行的唯一值并使用该值为所有记录创建列?
- javascript - 反应切换 ID
- google-cloud-platform - 如何加快 AI 平台训练作业队列?
- c++ - Asio 点对点网络编程