2011-01-08 27 views
7

目前,我正在使用LinqKit/Ms動態查詢示例從字符串動態構建Linq表達式。這工作正常。從C#4.0中的字符串構建Linq查詢 - 最佳實踐

  1. LinqKit:http://www.albahari.com/nutshell/linqkit.aspx
  2. 微軟動態LINQ查詢:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

現在,我從C#3.5遷移我的應用程序C#4.0。我想知道是否有另一種方法(框架的標準方法)從字符串構建查詢。

我檢查了文檔,但是還沒有找到任何東西。這也不是問題,因爲我有上述解決方案。

只有我喜歡使用「標準」功能,如果有一些。最佳做法是什麼?

+0

這是一個相關的討論:http://stackoverflow.com/questions/3782538/parsing-a-string-c-linq-expression。我認爲它是最新的.NET 4,所以框架中還沒有任何東西 - 除非你正在談論Linq to Entities,那麼EF有動態的查詢構建功能(儘管.NET 4並不是新功能)據我所知):http://msdn.microsoft.com/en-us/library/bb338811.aspx – Slauma 2011-01-09 12:28:14

+0

到目前爲止,我得到了我的舊代碼工作。需要進行小的調整。例如,一個方法調用不再接受null,但你需要調用一個重載的方法。基本上簡單的東西,一旦你知道。然而,很高興知道我顯然沒有錯過任何東西。 – 2011-01-10 23:27:04

回答

2

我目前正在做這樣的事情,我對結果很滿意。我這樣做的方式是使用Entity Framework和ObjectQuery.Select(字符串查詢,ObjectParameters [] params)方法。更多的信息在這裏:http://msdn.microsoft.com/en-us/library/bb298787.aspx#Y586

您不會從字符串中進行表達式,而是使用SQL來進行非常好的工作,並且正是爲了實現這個目的而動態地創建表達式並不是微不足道的,而且實際上是較慢的。

乾杯