Some of my Entity Framework classes implement a certain interface, say IHasYearColumn, which means the table has a year column (int).
I would like to iterate over all of the tables with year columns and do some work.
I managed to get the relevant types using:
var typesWithYear = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(a=>a.GetTypes())
.Where(t=>typeof(IHasYearColumn).IsAssignableFrom(t);
I verified this works, and indeed I get all the types I want.
Now, I would like to iterate over the respective table get the year values from all the records:
foreach (t in typesWithYear)
myDbEntites.Set<t>().Select(x=>x.Year);
This obviously won't compile since t is not recognized as IHasYearColumn. So, I tried casting all types in typesWithYear into IHasYearColumn but this would not help. I got an InvalidCastException.
Any ideas will be most welcomed.
Edit Found the answer here.