C# и Entity Framework. Вызов метода ToList() у всех свойств типа DbSet в DbContext

Имеется база данных деталей и иерархия наследования классов. Хочу запихнуть в один лист главного типа Detail все объекты типов-наследников, взяв данные из всех имеющихся таблиц БД и вывести на экран. Однако, почти не знаком с рефлексией и совершенно не представляю, как это сделать. Ниже я предоставлю абстрактный (неправильный) код, который передаст суть того, что я хочу сделать. Спасибо.

List<Detail> allDetails = new List<Detail>();
    public void ShowData()
    {
        using(var db = new DetailsDbContext())
        {
            // Абстрактный код

            Type dbContType = typeof(DetailsDbContext);
            var props = dbContType.GetProperties();
            foreach(var prop in props)
            {
                if (prop.Name.EndsWith('s'))
                {
                    foreach(var det in prop.ToList())
                    {
                        allDetails.Add(det);
                    }
                }
            }
            
            // Конец абстрактного кода

            //Вывод на экран
        }

Класс DetailsDbContext:

public class DetailsDbContext : DbContext
{
    public DbSet<AlternateResistor> AlternateResistors { get; set; }
    public DbSet<AnalogMicrocircuit> AnalogMicrocircuits { get; set; }
    public DbSet<CeramicCapacitor> CeramicCapacitors { get; set; }
    public DbSet<ComputerSystem> ComputerSystems { get; set; }
    public DbSet<ConstantResistor> ConstantResistor { get; set; }
    public DbSet<ElectrolyticCapacitor> ElectrolyticCapacitors { get; set; }
    public DbSet<HighFreqConnector> HighFreqConnector { get; set; }
    public DbSet<HighFreqDiode> HighFreqDiodes { get; set; }
    public DbSet<Inductance> Inductances { get; set; }
    public DbSet<LightDiode> LightDiodes { get; set; }
    public DbSet<LogicMicrocircuit> LogicMicrocircuits { get; set; }
    public DbSet<LowFreqConnector> LowFreqConnectors { get; set; }
    public DbSet<MembraneCapacitor> MembraneCapacitors { get; set; }
    public DbSet<RectifyingDiode> RectifyingDiodes { get; set; }
    public DbSet<Relay> Relays { get; set; }
    public DbSet<Switcher> Switchers { get; set; }
    public DbSet<Thyristor> Thyristors { get; set; }
    public DbSet<Transistor> Transistors { get; set; }
    public DbSet<ZenerDiode> ZenerDiodes { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder opt) 
        => opt.UseSqlite("Data Source= Detailsdata.db");

    
}

Ответы (0 шт):