我是新手,这可能很简单,但我有以下方法可以正常工作,使用 LINQ for MongoDB:
public T Single<T>(System.Linq.Expressions.Expression<Func<T, bool>> whereExpression) where T : class, new()
{
T retval = default(T);
using (var db = Mongo.Create(_connectionString))
{
retval = db.GetCollection<T>().AsQueryable()
.Where(whereExpression).SingleOrDefault();
}
return retval;
}
但我也想使用参数向它添加一个“选择”(用于投影),可能看起来像这样(这显然不起作用):
public T SingleWithSelect<T>(System.Linq.Expressions.Expression<Func<T, bool>> whereExpression, System.Linq.Expressions.Expression<Func<T, bool>> selectExpression) where T : class, new()
{
T retval = default(T);
using (var db = Mongo.Create(_connectionString))
{
retval = db.GetCollection<T>().AsQueryable()
.Where(whereExpression)
.Select(selectExpression)
.SingleOrDefault();
}
return retval;
}
希望它会返回类似于以下内容的内容:
var results = db.GetCollection<Entity>("Entities").AsQueryable()
.Where(i => i.Id == someId)
.Select(y => new { y.SomeEntity }).SingleOrDefault();
本质上,我只需要知道如何将 SELECT 参数传递给返回函数- 当对 LINQ 如此不熟悉时,很难在网上找到解决方案。
谢谢你。