MongoDB c#驱动程序排序和表达式查询

MongoDB c#驱动程序排序和表达式查询,c#,mongodb,sorting,driver,expression,C#,Mongodb,Sorting,Driver,Expression,我正在使用MongoDB C#驱动程序,希望使用表达式过滤和字段名排序。 这就是我的实现: List<OBJECT> result = collection.FindAll().SetSortOrder(SortFieldName).AsQueryable().Where(expression).ToList(); List result=collection.FindAll(); 变量表达式为: Expression<Func<OBJECT, bool>>

我正在使用MongoDB C#驱动程序,希望使用表达式过滤和字段名排序。 这就是我的实现:

List<OBJECT> result = collection.FindAll().SetSortOrder(SortFieldName).AsQueryable().Where(expression).ToList();
List result=collection.FindAll();
变量表达式为:

Expression<Func<OBJECT, bool>> expression
表达式
SortFieldName是一个包含“Name”或其他内容的字符串


此命令无效,因为结果为null。我错了什么?

不能将本机MongoDB查询与LINQ查询混合使用。您必须完全以这种或那种方式编写查询。下面是一些示例代码,显示了编写同一查询的两种方法:

collection.Insert(new C { Id = 1, X = 3 });
collection.Insert(new C { Id = 2, X = 2 });
collection.Insert(new C { Id = 3, X = 1 });

Console.WriteLine("Using MongoDB query:");
foreach (var document in collection.Find(Query.GT("X", 1)).SetSortOrder("X"))
{
    Console.WriteLine(document.X);
}
Console.WriteLine();

Console.WriteLine("Using LINQ:");
foreach (var document in collection.AsQueryable().Where(c => c.X > 1).OrderBy(c => c.X))
{
    Console.WriteLine(document.X);
}
Console.WriteLine();