Ottimizzare l'uso delle Compiled Queries di Entity Framework

Stefano Mostarda

di , in LINQ, Entity Framework,

Le Compiled Queries di Entity Framework permettono di velocizzare le performance di una query LINQ to Entities in quanto mantengono l'expression tree da queste generato. Poichè le Compiled Queries mantengono l'expression tree generato, quando si combina una Compiled Query con un'altro metodo LINQ, l'expression tree memorizzato viene ignorato e la query viene processata da zero.

Il modo migliore per evitare questo problema è creare un set di query, anche se molto simili, di modo da ottimizzare al massimo le performance.

var result = myCompiledQuery.Invoke(ctx);
foreach (var item in result) { } //usa query compilata

var result = myCompiledQuery.Invoke(ctx).Select(c => c.ID);
foreach (var item in result) { } //esegue da zero