1

如何在实体框架中选择不同的分页?我尝试在下面编写代码

 var ll = _ctx.Cwzz_AccVouchMain.Select(v => v.Ddate).Distinct();
        var l = ll.Skip(start).Take(limit).ToList();

但是错误:必须在跳过之前调用 orderBy 方法

但我的尝试

var ll = _ctx.Cwzz_AccVouchMain.Select(v => v.Ddate).Distinct();
        var l = ll.OrderBy(v => v.Year).ThenBy(v => v.Month).ThenBy(v => v.Date).Skip(start).Take(limit).ToList();

错误 ystem.NotSupportedException: LINQ to Entities 不支持“日期”类型。仅支持初始结算、实体成员、实体导航属性。

怎么做?

4

1 回答 1

1

试试这个:

var ll = _ctx.Cwzz_AccVouchMain.Select(v => v.Ddate).Distinct();
var l = ll.OrderBy(v => v).Skip(start).Take(limit).ToList();

当您尝试按年、月和日期排序时,您的查询尚未执行,当.ToList()触发它时,它会在将其发送到数据库服务器之前尝试构建适当的 sql 查询。但是,您的数据库对 a或没有任何线索Ddate.Year,因为在数据库方面,该字段是一个简单的日期,他不了解您的对象具有您在 C# 中使用的属性。Ddate.MonthDdate.DateDdateDateTime

如果您只想按月订购(例如),则必须在此之前触发您的查询。

于 2013-10-25T08:25:57.693 回答