开发者

Comparison operators not supported for type IList when Paging data in Linq to Sql

I can understand what the error is saying - it can't compare a list. Not a problem, other than the fact that I don't know how to not have it compare a list when I want to page through a model with a list as a property.

My Model:

Event : IEvent
  int Id
  string Title
  // Other stuff..
  LazyList<EventDate> Dates // The "problem" property

Method which pages the data (truncated):

public JsonResult JsonEventList(int skip, int take) {

  var query = _eventService.GetEvents();

  // Do some filtering, then page data..

  query = query.Skip(skip).Take(take);

  return Json(query.ToArray());
}

As I said, the above is truncated quite a bit, leaving only the main point of the function: filter, page and return JSON'd data.

The exception occurs when I enumerate (.ToArray()). The Event object is really only used to list the common objects of all the event types (Meetings, Birthdays, etc - for example). It still implements IEv开发者_JAVA技巧ent like the other types, so I can't just remove the LazyList<EventDate> Dates property unless I no longer implement IEvent

Anyway, is there a way to avoid this? I don't really want to compare a LazyList when I page, but I do not know how to resolve this issue.

Thank you in advance! :)


Do a transform on the data before returning it as JSON if you don't want the list e.g.

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


Try doing an explicit ordering before Skip and Take.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜