2009-11-03 38 views
3

我正在尋找對數據表使用System.Linq.Dynamic的示例linq代碼片段。Linq使用動態庫示例數據表?

Dim entities = (From ent In dt.AsEnumerable().Where(String.Format("IsUSFederal == {0}", "true")) _ 
Select Description = ent("Description"), Acronym = ent("Acronym")).ToList 

我得到一個錯誤「沒有可訪問的地方可以用這些參數調用」。我已經包含了DynamicLinq.vb文件,並且應用程序編譯得很好(除了這個錯誤)。我已包括Imports System.Linq.Dynamic,但它似乎沒有工作。

任何想法? thx

+0

您可以發佈問題的代碼? – 2009-11-03 17:35:26

回答

2

Enumerable.Where需要一個Func(Of TSource, Boolean)作爲參數,並通過String

(更新)

沒趕上動態庫零件...對不起。我認爲你需要做的是:

dt.AsQueryable() 

因爲庫中的擴展方法被定義爲:

<Extension()> _ 
Public Function Where(ByVal source As IQueryable, ByVal predicate As String, 
         ByVal ParamArray values() As Object) As IQueryable 
+0

我正在嘗試使用http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library中的linq擴展。 aspx 但是有些東西並不完全正確,因爲它看起來像這樣。擴展名中沒有使用的地方 – David 2009-11-03 17:46:39

+0

@David,看我的更新 – 2009-11-03 18:02:39

+0

如果你做OrderBy,你需要先做dt.AsEnumerable()。AsQueryable() – 2011-09-16 15:09:23