雖然試圖通過委託System.Func<T,TResult>
到CompiledQuery.Compile
方法,我收到以下錯誤傳遞委託CompiledQuery.Compile方法
「錯誤1個類型參數的方法「System.Data.Linq.CompiledQuery.Compile( System.Linq.Expressions.Expression>)'不能從使用中推斷出來,請嘗試明確指定類型參數。「
public static void CompiledLINQQuery()
{
Northwind_LINQtoSQLDataContext objData = new Northwind_LINQtoSQLDataContext();
Func<Northwind_LINQtoSQLDataContext, IQueryable<Customer>> LINQHolder = GetPreCompiledQuery;
LINQHolder = CompiledQuery.Compile(LINQHolder); //This is where the error comes up
var Results = LINQHolder.Invoke(objData);
}
private static IQueryable<Customer> GetPreCompiledQuery(Northwind_LINQtoSQLDataContext objD)
{
return from cust in objD.Customers where cust.Country == "Germany" select cust;
}
在同一時間,如果我直接通過LINQ到CompiledQuery.Compile
方法,那麼它的工作沒有任何錯誤。
LINQHolder = CompiledQuery.Compile((Northwind_LINQtoSQLDataContext objD) => from cust in objD.Customers where cust.Country == "Germany" select cust);
我不明白爲什麼我不能通過委託,而不是LINQ查詢表達式。
請幫我解決這個問題。
這不會在第一行從別的編譯,開 - 一個隱式類型的局部變量的初始化表達式不能是方法組。 – 2011-02-26 20:33:12