Операторы сравнения не поддерживаются для типа IList при поиске данных в Linq в Sql - PullRequest
0 голосов
/ 13 мая 2010

Я могу понять, что говорит ошибка - она ​​не может сравнивать список. Не проблема, за исключением того факта, что я не знаю, как не сравнивать список, когда я хочу пролистать модель со списком в качестве свойства.

Моя модель:

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

Метод, который страницы данных (усеченный):

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());
}

Как я уже сказал, вышесказанное довольно сильно усечено, оставляя только основной смысл функции: фильтр, страницу и возврат данных в формате JSON.

Исключение возникает при перечислении (.ToArray()). Объект Event действительно используется только для перечисления общих объектов всех типов событий (например, Встречи, Дни рождения и т. Д.). Он по-прежнему реализует IEvent, как и другие типы, поэтому я не могу просто удалить свойство LazyList<EventDate> Dates, если я больше не реализую IEvent

В любом случае, есть ли способ избежать этого? Я действительно не хочу сравнивать LazyList при открытии страницы, но я не знаю, как решить эту проблему.

Заранее спасибо! :)

Ответы [ 2 ]

1 голос
/ 13 мая 2010

Выполните преобразование данных, прежде чем возвращать их в формате JSON, если вам не нужен список, например,

return Json(query.Select(event => new { event.Id, event.Title }).ToArray());
0 голосов
/ 13 мая 2010

Попробуйте сделать явный порядок до Skip и Take.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...