Это linq-to-sql
У меня много разных классов, выполняющих один и тот же запрос, но прогнозирование результатов немного по-другому. В идеале я хотел бы иметь возможность получить запрос в одном месте и передать проекцию в метод Select. Это прекрасно работает для конкретных типов:
public void GetResults() {
var junk = db.SiteProducts.Select(Project());
}
public Expression<Func<DbEntities.SiteProduct, string>> Project() {
return p => p.ProductAlert;
}
Но когда я пытаюсь вернуть анонимный тип, это не удается
public void GetResults() {
var junk = db.SiteProducts.Select(Project());
}
public Expression<Func<DbEntities.SiteProduct, TResult>> Project<TResult>() {
return p => new { p.ProductAlert };
}
Я полностью понимаю, почему вывод универсального типа не работает во втором случае. Но есть ли какой-то трюк, кроме создания собственных выражений с нуля, который мне не хватает, чтобы заставить это работать?