Прежде всего, метод DefaultIfEmpty не поддерживается в версии 1 Entity Framework, но поддерживается в версии 4. Возможно, вы захотите обновить.
Во-вторых, поскольку вы ищете только логическое значение, чтобы определить, есть ли какие-либо значения по умолчанию, вы не выполняете реальное внешнее объединение столько, сколько «существует», и вы должны быть в состоянии достичь этого следующим образом:
var defaultCategories =
(from cats in Db.categories
let defaults = Db.payee_default_category.Where(
d => d.category_id == cats.category_id)
select new {cats.category_id, cats.description, hasDefaults = defaults.Any()})
.ToList();
Кроме того, ваш контекст Entity Framework в идеале должен быть настроен с отображением таблиц, что сделает ваш запрос еще проще:
var defaultCategories =
(from c in Db.categories
select new {c.category_id, c.description,
hasDefaults = c.payee_default_categories.Any()})
.ToList();