全部...
我正在使用使用 NuGet 和 MVC 3 的 RavenDB 嵌入式最新稳定版本。
public JsonResult GetStudents(GridFilter filter)
{
using (var session = _store.OpenSession())
{
var students = session.Query<Student>();
students.OrderBy(x => x.FirstName);
return Json(students.ToList());
}
}
此代码不会中断。它也不按 Student.FirstName 排序。我查看了 RavenQueryInspector(将鼠标悬停在学生集合上),发现以下内容......
AsyncDatabaseCommands = '(((Raven.Client.Linq.RavenQueryInspector<UMA.KendoGrid.Entities.Student>)(students))).AsyncDatabaseCommands' threw an exception of type 'System.NotSupportedException'
如果我做
var students = from x in session.Query<Student>()
orderby x.FirstName descending
select x;
效果很好。首先,我不明白为什么在使用 long linq 语法时使用 lambda 会失败。我真正需要的是按任何领域过滤学生,因为我使用的是具有排序能力的网格。我想使用 Microsoft 的 System.Linq.Dynamic 文件按字符串名称排序,这样我就可以按排序集合中传递的任何字段进行排序。
但是,要开始,我想我需要弄清楚为什么我的 RavenDB 嵌入式版本不允许我使用 lambda 表达式。任何人都可以帮忙吗?