В настоящее время я занимаюсь рефакторингом приложения silverlight и извлекаю часто используемые запросы в служебный класс.В приложении много запросов, и хотя были некоторые очевидные цели, когда я перешел к очень маленьким запросам вроде этого:
public static readonly Func<STARSEntities, int> CurrentFundingYearId =
CompiledQuery.Compile<STARSEntities, int>(
(ctx) =>
(ctx.STARS_FundingYear.Where(i => i.IsCurrentYear == true)).FirstOrDefault().FundingYearId);
Стоит ли компилировать?Все, что я прочитал ( Programming Entity Framework 2ed ) и различные онлайн-источники, говорит о повышении производительности, но я не нашел ничего такого, что бы указывало, когда НЕ нужно выполнять предварительную компиляцию (кроме того факта, что вы можетене возвращать анонимные типы, поэтому нет проекций).
Редактировать: Хорошая справочная статья о скомпилированных запросах: Прекомпиляция запросов LINQ
Каковы оптимальные методы определения, когда (или нет) предварительно скомпилировать запрос Linq в приложении?