Web API with MongoDB issue
本文关键字:issue MongoDB with API Web | 更新日期: 2023-09-27 18:16:14
对c#和MongoDB来说很新,我遵循这个教程(我知道它有点过时),但是我正在通过它和修复弃用。我正在努力从教程的这部分代码:
public Product GetProduct(ObjectId id)
{
var res = Query<Product>.EQ(p=>p.Id,id);
return _db.GetCollection<Product>("Products").FindOne(res);
}
我在这一行上得到错误,特别是var res = Query<Product>.EQ(e => e.Id, id);
,并且已经将其调整为以下…
public Post GetPost(ObjectId id)
{
var res = IQueryable<Product>.Equals(p =>p.id, id);
return _db.GetCollection<Product>("Product").Find(res);
}
我的问题是,它确实喜欢lambda表达式,并给我这个错误cannot convert lambda expression to type object because it is not a delegate type
。所以我想问的是…
1。这个的意义是什么?
2。我怎么修理它?
尝试使用生成器创建您的过滤器:
var filter = Builders<Product>.Filter.Eq(x => x.Id, id);
return _db.GetCollection<Product>("Product").Find(filter);
或者直接在Find()方法中使用lambda,即
public Post GetPost(ObjectId id)
{
//If using FindOne() you won't need FirstOrDefault()
return _db.GetCollection<Product>("Product").Find(x => x.Id == id).FirstOrDefault();
}