私は新しく、これはおそらく非常に簡単ですが、MongoDB用のLINQを使用して、正常に機能する次の方法があります。
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パラメーターをreturn関数に渡す方法を知る必要があります。LINQに慣れていない場合、オンラインでソリューションを見つけるのは驚くほど困難です。
ありがとうございました。