C#MongoDb驱动程序-通过可为空的属性安全检查进行过滤

C#MongoDb驱动程序-通过可为空的属性安全检查进行过滤,c#,mongodb,C#,Mongodb,我使用.NETCore3.1和MongoDB驱动程序,我有一个方法,我想通过一个属性来查找,但该属性是可空的。方法如下: public async Task<List<MyDataModel>> GetCustomersAsync(IEnumerable<long> ids) { var filterDefinition = new FilterDefinitionBuilder<MyDataModel>();

我使用.NETCore3.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();
    }
公共异步任务GetCustomerAsync(IEnumerable ID) { var filterDefinition=新的FilterDefinitionBuilder(); var idsFilter=filterDefinition.In(x=>x.Id.Value,mdmIds); return等待此.Table.Find(idsFilter.toListSync(); } 事情发生在x.Id.Value上,如果我不执行此操作,它会抛出一个编译错误,无法将lambda表达式转换为类型“FieldDefinition”,因为它不是委托类型

如果我将ID的类型从long更改为long?它没有抱怨,但我是错过了什么还是做错了什么


谢谢

在筛选之前,只需添加筛选,即可筛选出所有以null作为_id的文档。 我认为它被称为Ne=>filterDefinition.Ne((x=>x.Id.Value,null)