2009-06-30 61 views

回答

8

那麼,你可以撥打AsQueryable,但它不會有什麼好處。問題是,當您使用ExecuteQuery時,查詢不是可組合,因爲LINQ to SQL不能「理解」它。

IQueryable<T>的核心目的之一是允許查詢的各個方面組合在一起,然後LINQ to SQL可以將它們轉換爲單個SQL查詢。當查詢的某個位有效不透明時,這不起作用。

+0

你似乎明白我確切的問題。如果我想使用臨時查詢,有沒有辦法解決這個問題? – codette 2009-06-30 18:40:00

1

如果需要,可以將查詢結果導出到列表中,然後將其轉換爲IQueryable。看下面的例子代碼:

public IQueryable<Data> GetData() 
    string query = @"select ..."; 
    object[] parameters = new object[...]{...}; 
    var resultQuery = this.DataContext.ExecuteQuery<SICDB.Data>(query, parameters); 
    var tempList = resultQuery .ToList(); 
    return tempList.AsQueryable(); 
}