Решение построить результат Темп после первого соединения и использовать его в качестве первой последовательности во втором присоединиться
var result = product.Where(p => p.Active == 1), // 1st sequence
.join(catalog, // 2nd sequence
p => p.CatalogId, // selector from 1st sequence
c => c.Id, // selector from 2nd sequence
(p, c) => // take the elements where the selector match
new {ManufacturerId = p.ManufacturerId,
Name = p.Name,
CatalogId = p.CatalogId,
CatalogName = c.Name}) // result is 1st sequence next join
.Join(Manufacturer, // 2nd sequence 2nd join
r => r.ManufacturerId, // selector result 1st join
m => m.Id, // selector 2nd sequence 2nd join
(r, m) => // two elements where the selectors match
new {Name = r.Name, // build the result object
CatalogId = r.CatalogId,
ManufacturerId = r.ManufacturerId,
CatalogName = r.CatalogName,
ManumfacturerName = r.Name});
Что ваша модель домена выглядеть для продукта, каталогизировать и Производитель ? –