2011-03-17 88 views
0

我知道我可以使用ESQL來查詢ObjectSet of T,但是我可以用它來查詢任意IQueryable of T我可以使用實體SQL來查詢IQueryable <T>嗎?

EDIT

實施例:

var originalQuery = from t in Transactions where t.Date < DateTime.Now select t; 

// query is now an IQueryable<Transation>. Now I want to do some dynamic manipulations 
// on originalQuery by using ESQL 

var manipulationQuery = "select t.a as A from T as t"; 

// I want to execute manipulationQuery over the originalQuery, something like this: 
// (this is a hipotetical method. It does not exist) 
var transactions = context.RunESQLOverIQueryable(originalQuery, manipulationQuery).ToList(); 

編輯2

其實用例是:我需要一個程序員編寫返回一個IQueryable的方法(T )代表核心查詢。這個查詢將被賦予一個ReportControl,它必須在這個查詢上執行一系列的group bys,以及選擇哪些列必須被檢索等等。我認爲通過ESQL動態操縱核心查詢是一個不錯的選擇。我也不確定。

+1

對不起,想不到 - 在這種情況下什麼是實體SQL?如果您使用EF,那麼您獲得的大多數IQueryable 都可以轉換回ObjectQuery s,然後您可以再次使用這些方法。 – Rup 2011-03-17 11:37:13

+0

好的,謝謝 - 所以有一個非假設的方法可以通過ObjectQuery執行相同的操作? (做[EntityCommand](http://msdn.microsoft.com/en-us/library/bb343124.aspx)是否這樣做?) – Rup 2011-03-17 12:16:07

+0

@RUP:謝謝你的回覆。我不認爲這個字符串謂詞哪裏方法可以幫助我解決我的問題。我再次用附加信息編輯了這個問題。謝謝。 – 2011-03-17 12:25:26

回答

1

檢查Dynamic Linq庫。它是samples for Visual studio 2008的一部分,但它也將與2010年一起工作。

+0

儘管它沒有回答核心問題,但它解決了我的問題。謝謝 – 2011-03-25 13:09:23

相關問題