Могу ли я использовать метод расширения в 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.IEnumerable
1 [Registration]) ', и этот метод не может быть преобразован в выражение хранилища.
Есть ли способ повторно использовать этот код в подзапросе?