我無法通過ObjectID獲取GridFSFileInfo,但獲得文件名 ,錯誤消息爲: 無法確定x => x.Id的序列化信息Mongodb:無法通過ObjectID獲取GridFSFileInfo,但按文件名取得成功
string objectID = ObjectIDTxt.Text.Trim();
GridFSBucketOptions bucketOptions = new GridFSBucketOptions();
bucketOptions.BucketName = "myBucket";
ObjectId gridfsObjectID = new ObjectId(objectID);
//by filename will succeed
//var filter = Builders<GridFSFileInfo>.Filter.Eq(x => x.Filename, "myfilename.pdf");
//by ObjectID will fail
var filter = Builders<GridFSFileInfo>.Filter.Eq(x=>x.Id,gridfsObjectID);
var findOptions = new GridFSFindOptions();
findOptions.Limit = 1;
var myBucket = new GridFSBucket(_database, bucketOptions);
using (var taskOfCursor = Task.Run(() => myBucket.FindAsync(filter, findOptions)))
{
var taskOfList = Task.Run(() => taskOfCursor.Result.ToListAsync());
GridFSFileInfo fileInfo = taskOfList.Result.FirstOrDefault();
if (fileInfo != null)
{
FileNameLbl.Text = fileInfo.Filename;
}
}
我正在使用Mongodb 3.0,c#驅動程序2.1,wird老虎存儲引擎。 請原諒我使用許多'Task.Run()',因爲出於某種原因,我需要同步調用異步mongo方法。 任何建議將不勝感激... THX
它的工作原理! Thx的答案和上面的其他信息。雖然它們對我來說似乎有點困難(特別是Eq和隱式轉換的鏈接)。我會花一些時間在他們身上。再次。 – ChiaChi