Что вы можете сделать, это вернуть выражение, которое запрашивает каждый из продуктов.Так что-то вроде:
(product) => ReportProductForTheCurrentUser (product).
Весьма вероятно, что ваш поставщик запросов не сможет обработать выражение, подобное этому.Например, провайдер EF не будет.Но если вы используете LINQ to Objects или что-то еще, это может произойти.
Во всяком случае, именно так должен работать перехватчик запросов.