Это 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 };
}
Я полностью понимаю, почему во втором случае вывод типа не выполняется. Но есть ли трюк, способный выработать мои собственные выражения с самого начала - я не могу, чтобы это могло заставить это работать?