Обычно я предпочитаю лямбда-синтаксис с LINQ, но Join
- один из примеров, где я предпочитаю синтаксис запроса - исключительно для удобства чтения.
Тем не менее, вот эквивалент вашего запроса (я думаю, не проверено):
var query = db.Categories // source
.Join(db.CategoryMaps, // target
c => c.CategoryId, // FK
cm => cm.ChildCategoryId, // PK
(c, cm) => new { Category = c, CategoryMaps = cm }) // project result
.Select(x => x.Category); // select result
Возможно, вам придется поиграть с проекцией в зависимости от того, что вы хотите вернуть, но в этом суть.