(я использую Ef6 здесь) Скажем, у меня есть абстрактный класс:Как перебрать все DbSet в родовом?
public abstract class MyContext<T> : DbContext
и давайте его использовать:
public class MyTestContext : MyContext<MyTestContext>
{
public DbSet<Object1> Object1 { get; set; }
public DbSet<Object2> Object2 { get; set; }
}
Теперь, скажем, я хочу, чтобы перебрать все DbSets в MyTestContext, в моем абстрактном классе. Кажется, что это будет работать (это в методе в моем абстрактном классе):
var dbSetProperties = typeof(T).GetProperties().Where(p => p.PropertyType == typeof(DbSet<>));
Но я получаю «Перечисление не дало никаких результатов».
Что я здесь делаю неправильно? Благодаря!
Редактировать Примечание. Я не ожидаю знать аргументы общего типа до начала - я действительно ищу, чтобы определить, какие типы находятся в каждом из DbSets.
Свойства не относятся к типу DbSet <>, их общее определение есть. –