0
Dim days = (From d In db.ShiftSchedule _
               Where d.Shift1 = 1 And d.WorkDate >= StartDate _
               Order By d.ID _
               Skip SkipValue _
               Select New With {d.ID, d.WorkDate, d.Shift1, _
               .EndDate = (From dd In db.ShiftSchedule _
               Where d.Shift1 = 1 And d.WorkDate >= StartDate _
               Order By d.ID _
               Skip SkipValue - 1 _
               Select dd.WorkDate).First}).First

当我尝试执行上面的 LINQ to Entities 查询时,我收到以下错误,该代码可能有什么问题。

Count 必须是 DbConstantExpression 或 DbParameterReferenceExpression。参数名称:计数

4

2 回答 2

0

我认为,您的内部查询应该有条件为 Where dd .Shift1 = 1 And dd .WorkDate >= StartDate Order By dd .ID 而不是 Where d.Shift1 = 1 And d.WorkDate >= StartDate _ Order By d.ID

不知道是不是笔误。。

于 2012-04-23T14:58:24.783 回答
0

由于您提供的“跳过”的值是计算出来的,这将导致异常。如果您将值存储在您首先计算的变量中,然后使用该变量,它应该可以按预期工作。

所以

Dim actualSkipValue = SkipValue - 1

Dim days = (From d In db.ShiftSchedule _
               Where d.Shift1 = 1 And d.WorkDate >= StartDate _
               Order By d.ID _
               Skip SkipValue _
               Select New With {d.ID, d.WorkDate, d.Shift1, _
               .EndDate = (From dd In db.ShiftSchedule _
               Where d.Shift1 = 1 And d.WorkDate >= StartDate _
               Order By d.ID _
               Skip actualSkipValue _
               Select dd.WorkDate).First}).First

不应该抛出异常。

于 2019-11-28T11:19:14.613 回答