(Ich verwende EF6 hier) Sagen, ich habe eine abstrakte Klasse:Wie iteriert man über alle DbSet in einem generischen?
public abstract class MyContext<T> : DbContext
und lasst es in Gebrauch genommen:
public class MyTestContext : MyContext<MyTestContext>
{
public DbSet<Object1> Object1 { get; set; }
public DbSet<Object2> Object2 { get; set; }
}
Nun, sage ich alles über die DbSets iterieren wollen in MyTestContext, in meiner abstrakten Klasse. Scheint dies funktionieren würde (dies ist in einem Verfahren in meiner abstrakten Klasse):
var dbSetProperties = typeof(T).GetProperties().Where(p => p.PropertyType == typeof(DbSet<>));
Doch komme ich „Aufzählung keine Treffer“.
Was mache ich hier falsch? Vielen Dank!
bearbeiten Hinweis - Ich erwarte nicht zu wissen, die generischen Typ Argumente im Vorfeld - Ich bin eigentlich auf der Suche nach bestimmen, welche Typen in jedem der DbSets sind.
Eigenschaften sind nicht vom Typ DbSet <>, ihre generische Definition ist. –