2009-09-20 52 views
2

我試圖對查詢結果執行查詢,但出現錯誤:「該方法或操作未實現」。我可以用這種方式鏈接查詢嗎?例如,我有一個Northwind類型的DataSet。我做的:鏈接數據綁定LINQ查詢LINQ到數據集

queryResult = From product In NorthWindDataSet.Products 
         Where (product.UnitsOnOrder > CInt(txtUnitsOnOrderFilter.Text)) 
         Select product 

然後我嘗試做

queryResult = From product In queryResult 
       Where (product.CategoryID = cboCategoryFilter.SelectedValue) 
       Select product 

到最後使用查詢的結果作爲綁定源: ProductsBindingSource.DataSource = queryResult.AsDataView()

哪有我完成了這個?

回答

0

LINQ to SQL可能會抱怨您的查詢中的CInt和SelectedValue調用。嘗試捕捉您的查詢之外的值而不是:

Dim units = CInt(txtUnitsOnOrderFilter.Text) 
Dim catId = cboCategoryFilter.SelectedValue 

queryResult = From product In NorthWindDataSet.Products 
       Where (product.UnitsOnOrder > units) AndAlso (product.CategoryID = catId) 
       Select product 
+0

我試着用文字值,如你所說,例如點心單位= 2和點心CATID = 3,但現在我越來越:「使用後無法創建數據視圖投影「異常在System.Data.EnumerableRowCollection'1.GetLinqDataView()。由於條件是動態應用的,因此我能夠對最初發布的查詢結果執行查詢,這一點很重要。這意味着有時候只使用單位,有時只使用catId,有時使用兩種情況。 – Dan 2009-09-20 19:01:34

+0

你在做這種過濾之後對queryResult進行任何類型的投影,可能只是選擇Product.ID或其他東西?這似乎是什麼會導致該錯誤。另外,你是否嘗試過將數據源綁定到queryResult而不調用AsDataView()? – dahlbyk 2009-09-21 13:41:51