我正在尝试从 GridFS 数据库中获取
GridFSFileInfo
,但我遇到了一个问题,即它在通过 id 查找时无法正常工作。
它在通过
IdAsBsonValue
找到时正在工作,这是我的一些代码:
var filter = Builders<GridFSFileInfo>.Filter.Eq(x => x.IdAsBsonValue, BsonValue.Create(ObjectId.Parse(id)));
using (var cursor = _bucket.Find(filter))
{
var fileInfo = cursor.ToList().FirstOrDefault();
...
}
上面显示的代码工作正常但是
IdAsBsonValue
已经过时所以我只想使用Id
.
当我将第一行更改为:
var filter = Builders<GridFSFileInfo>.Filter.Eq(x => x.Id, ObjectId.Parse(id));
连接到数据库时出现以下错误:“MongoDB.Driver.Linq.ExpressionNotSupportedException:不支持表达式:x.Id。”
GridFSFileInfo
中有一个名为 Id
的属性,之前显示的示例正在运行,所以我不知道那里出了什么问题..
很高兴有人分享解决方案:)
我正在使用 .NET 6.0