Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Linq中的数据分页为Sql时,类型IList不支持比较运算符_C#_Asp.net Mvc_Linq To Sql_Asp.net Mvc 2 - Fatal编程技术网

C# 将Linq中的数据分页为Sql时,类型IList不支持比较运算符

C# 将Linq中的数据分页为Sql时,类型IList不支持比较运算符,c#,asp.net-mvc,linq-to-sql,asp.net-mvc-2,C#,Asp.net Mvc,Linq To Sql,Asp.net Mvc 2,我能理解错误在说什么——它无法比较列表。这不是问题,只是我不知道当我想用列表作为属性浏览模型时,如何不让它比较列表 我的模型: Event : IEvent int Id string Title // Other stuff.. LazyList<EventDate> Dates // The "problem" property 正如我所说,上面的代码被截断了很多,只剩下函数的主要部分:过滤、分页和返回JSON数据 枚举(.ToArray())时发生异常。事件对

我能理解错误在说什么——它无法比较列表。这不是问题,只是我不知道当我想用列表作为属性浏览模型时,如何不让它比较列表

我的模型:

Event : IEvent
  int Id
  string Title
  // Other stuff..
  LazyList<EventDate> Dates // The "problem" property
正如我所说,上面的代码被截断了很多,只剩下函数的主要部分:过滤、分页和返回JSON数据

枚举(
.ToArray()
)时发生异常。
事件
对象实际上仅用于列出所有事件类型(例如会议、生日等)的公共对象。它仍然像其他类型一样实现
IEvent
,因此我不能仅仅删除
LazyList Dates
属性,除非我不再实现
IEvent

不管怎样,有没有办法避免这种情况?我真的不想在翻页时比较一个
LazyList
,但我不知道如何解决这个问题


先谢谢你!:)

如果不需要列表,请在将数据作为JSON返回之前对其进行转换,例如

return Json(query.Select(event => new { event.Id, event.Title }).ToArray());

尝试在
Skip
Take
之前执行显式排序,然后尝试
查询。OrderBy(“col”,“asc”).Skip(…).Take(…)
以相同的错误将
查询。不过,选择(…)
在我跳过并执行之前枚举查询?无论如何,值得一试。ToArray()将枚举查询。不管你按什么顺序执行。Skip.Take.Select,因为在你调用数组()之前,它只是在建立一个表达式树。然后尝试截断数据。Skip'ing,但我得到一个错误,说Skip必须是包含表中所有列的过序查询。这可能是因为我使用的是SQL Server 2000:(你在做什么样的过滤,也许这就是问题所在?如果你把Skip()Take()放在ToArray()后面)它可能会起作用,但不太好,这意味着它将检索整个数据集,然后丢弃您不需要的行。我跳过/删除了另一个表,很好-我想我会做一些研究,并在需要时提出另一个问题:)
return Json(query.Select(event => new { event.Id, event.Title }).ToArray());