Вы можете получить ObjectSets, используя следующий непроверенный код:
var objSetProps = instanceOfObjectContext.GetType().GetProperties().Where(prop => prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(ObjectSet<>));
foreach(PropertyInfo objSetProp in objSetProps)
{
var objSet = objSetProp.GetValue(instanceOfObjectContext, BindingFlags.GetProperty, null, null, null);
}
Уловка будет работать с ObjectSet, как только у вас будет экземпляр, потому что он ObjectSet является универсальным, и работа с переменными универсальных типов может быть менее очевидной, если вы не знаете, какой тип использовался для их определения.
Что касается получения коллекций сущностей на наборе объектов, то может быть использован аналогичный подход, но у меня пока нет такого примера под рукой.