[英]Cannot convert lambda expression to inteded delegate type
我正在尝试更新 mongodb 数据库中的字段,但出现以下错误:
无法将 lambda 表达式转换为预期的委托类型,因为块中的某些返回类型不能隐式转换为委托返回类型
我使用以下功能:
List<Items> items= _pat.Find(s => s.Token == data[0]).ToList();
_logs.UpdateOneAsync(s => s.item_id == items[0].item_id
&& s.Date == DateTime.Parse(data[1]),
s => s.Status = data[2]);
但是在函数的更新部分,在s => s.Status = data[2]
,我得到了错误。
如果不通过这种方式,我将如何更新s.Status
?
UpdateOneAsync
定义为:
Task<UpdateResult> UpdateOneAsync(FilterDefinition<TDocument> filter,
UpdateDefinition<TDocument> update, UpdateOptions options = null,
CancellationToken cancellationToken = default(CancellationToken));
UpdateOneAsync
的签名是:
Task<UpdateResult> UpdateOneAsync(FilterDefinition<TDocument> filter,
UpdateDefinition<TDocument> update, UpdateOptions options = null,
CancellationToken cancellationToken = default(CancellationToken));
因此,您需要使用 UpdateDefinition 而不是 lambda 函数。 因此,不要使用s => s.Status = data[2]
,而是使用Builders<Items>.Update.Set(p => p.Status, data[2])
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.