У меня есть три типа, производные от одного базового класса: BaseEvent.
Я отображаю все три типа вместе в сетке данных в своем интерфейсе. Необходимо сохранять информацию о том, какого типа каждый элемент, чтобы я мог привести его к соответствующему типу при обработке во внешнем интерфейсе.
Я работал, преобразовывая каждый набор в список, но мне бы хотелось вместо этого вернуть IQueryable, чтобы его можно было более эффективно фильтровать.
Код: Выделить всё
public override IQueryable GetAllItems()
{
var freestyleEvents = _context.Set()
.Include(ev => ev.Venue)
.Include(ev => ev.EventImage)
.Include(ev => ev.BookingOption)
.Include(ev => ev.Business)
.Include(ev => ev.Tickets!).ThenInclude(ticket => ticket.TicketOption);
var workshopEvents = _context.Set()
.Include(ev => ev.Venue)
.Include(ev => ev.EventImage)
.Include(ev => ev.BookingOption)
.Include(ev => ev.Business)
.Include(ev => ev.Tickets!).ThenInclude(ticket => ticket.TicketOption);
var classNightEvents = _context.Set()
.Include(ev => ev.Venue)
.Include(ev => ev.EventImage)
.Include(ev => ev.BookingOption)
.Include(ev => ev.Business)
.Include(ev => ev.Tickets!).ThenInclude(ticket => ticket.TicketOption);
return freestyleEvents.OfType().Concat(workshopEvents.OfType()).Concat(classNightEvents.OfType());
}
Выражение типа 'System.Linq.IQueryable
Код: Выделить всё
1[BaseEvent.Model.Freestyle]' cannot be used for parameter of type 'System.Linq.IQueryable
Код: Выделить всё
1[BaseEvent.Model.Workshop] Concat[Workshop](System.Linq.IQueryable
How can I write this so it works?
Источник: https://stackoverflow.com/questions/781 ... ived-types