2009-09-20 84 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