Могу ли я использовать метод расширения в Entity Framework SubQuery?

Я пытаюсь объединить логику для доступа к различным таблицам с помощью Entity Framework. Я создал метод расширения для получения всех регистраций от моей регистрационной организации, в которой этот человек посещает:

public static IEnumerable<Registration> Attending(this IEnumerable<Registration> registrations)
{
    return registrations.Where(r => r.Status == RegistrationStatus.Paid || r.Status == RegistrationStatus.Assigned || r.Status == RegistrationStatus.Completed);
}

Это прекрасно работает для таких запросов:

var attendees = db.Registrations.Attending().ToList();

Но это не работает при использовании в подзапросе:

ProductTotals = db.Products.Where(p => p.EventID == ev.Id).Select(p => new ProductSummaryViewModel
{
    ProductID = p.ProductID,
    ProductName = p.Name,
    Registrations = p.Registrations.Attending().Count(),
}).ToList();

Я получаю следующую ошибку:

LINQ to Entities не распознает метод 'System.Collections.Generic.IEnumerable1[Registration] Attending(System.Collections.Generic.IEnumerable1 [Registration]) ', и этот метод не может быть преобразован в выражение хранилища.

Есть ли способ повторно использовать этот код в подзапросе?

Ответы на вопрос(1)

Ваш ответ на вопрос