【发布时间】:2012-06-28 16:15:47
【问题描述】:
我正在处理动态数据。
创建动态模型并在 global.asax 中注册后,如
DefaultModel.RegisterContext(typeof(masterEntities1),new ContextConfiguration() { ScaffoldAllTables = true });
当我运行一个应用程序时,它会显示一个表格列表,但是当我单击任何一个表格时它会引发异常:
只有 LINQ to Entities 中的排序输入支持“跳过”方法。方法“OrderBy”必须在方法“Skip”之前调用。
但我没有在我的应用程序中声明任何查询。
【问题讨论】:
-
我遇到了一些包含以下信息的网站。
-
如果您使用实体框架作为数据模型,那么您必须更新每个实体的查询方法。您需要添加排序子句。您需要这样做的原因是,默认情况下,查询方法没有排序,并且在动态数据项目模板中,为列表和列表详细信息模板启用了分页。如果您不订购查询方法的结果并使用分页,当您访问列表/列表详细信息模板中的实体时,您将收到以下异常
-
如:public IQueryable
GetProducts() { return this.ObjectContext.Products.OrderBy(p=>p.ProductID); } -
但现在的问题是我应该在哪里对实体数据模型中的实体进行排序,以便当它映射到关系表时,它会在调用方法跳过之前按列表排序?
标签: exception entity-framework-4 linq-to-entities dynamic-data