Имеется примерно следующая структура классов:
public class Person
{
public long Id { get; set; }
}
public class MarketUser : Person
{
public ICollection<Order> Orders { get; set; }
}
public class AdminUser : Person
{
public ICollection<Request> Requests { get; set; }
}
Generic метод
public ICollection<TPerson> GetPersons<TPerson>() where TPerson : Person
{
DbSet personDbSet = GetDbSet<Person>();
ICollection<TPerson> personsCollection = personDbSet.OfType<TPerson>()
.Include("Orders")
.Include("Requests")
.ToList();
return personsCollection;
}
Пример вызова метода
ICollection<Person> persons = GetPersons<Person>();
Вопрос в том, как загрузить навигационные свойства? Сейчас подобная конструкция приводит к возникновению исключения (что вполне логично), т.к. у MarketUser нет свойства Requests, а у AdminUser нет свойства Orders