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