Преимущества предварительной компиляции запросов LinqToSql?

Я просматривал образцы запросов LINQ, предоставленные с LINQPad, взятые из книги C # 4.0 в двух словах, и наткнулся на то, что я никогда не использовал в LINQ to SQL ... Скомпилированные запросы.

Вот точный пример:

// LINQ to SQL lets you precompile queries so that you pay the cost of translating
// the query from LINQ into SQL only once. In LINQPad the typed DataContext is
// called TypeDataContext, so we proceed as follows:

var cc = CompiledQuery.Compile ((TypedDataContext dc, decimal minPrice) =>    
    from c in Customers
    where c.Purchases.Any (p => p.Price > minPrice)
    select c
);

cc (this, 100).Dump ("Customers who spend more than $100");
cc (this, 1000).Dump ("Customers who spend more than $1000");

Что на самом деле дает мне прекомпиляция запроса LINQ to SQL, подобного этому? Получу ли я повышение производительности от запроса немного более сложного, чем этот? Используется ли это вообще на практике?

5
задан Mike Fielden 6 October 2010 в 15:10
поделиться