Есть IQueryable<T> и имя типа с которым нужен join. Возможно их как-то соединить, используя рефлекшен, например? Я не понял как...
Выглядеть может примерно так:
private IQueryable<T> Join(DataContext ctx, IQueryable<T> data, string typeName, string masterKeyFieldName, string foreignKeyFieldName)
{
}
Хотя 90%, что в будущем вместо 'IQueryable<T> data' будет тоже имя типа...