2009-09-20 6 views
2

쿼리 결과에 대해 쿼리를 수행하려고하는데 "메서드 또는 연산이 구현되지 않았습니다."라는 오류가 발생합니다. 이 방식으로 쿼리를 연결할 수 있습니까? 예를 들어 Northwind 형식의 DataSet이 있습니다. 내가 수행LINQ에서 DataSet으로 연결되는 데이터 바인딩 된 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, 리터럴 값을 사용하려고했지만 지금은 받고 있어요 : "사용 후 DataView를 만들 수 없습니다 투영 "예외 System.Data.EnumerableRowCollection'1.GetLinqDataView(). 조건이 동적으로 적용되므로 원래 게시 할 때 쿼리 결과에 대한 쿼리를 수행 할 수 있어야합니다. 이것은 때로는 단지 단위, 때로는 catId와 때로는 두 조건이 사용된다는 것을 의미합니다. – Dan

+0

이 필터링 후에 queryResult에 대한 프로젝션을하고 있습니까? 아마도 Product.ID 같은 것을 선택했을 것입니다. 그게 그 오류를 일으키는 것 같습니다. 또한 AsDataView()를 호출하지 않고 queryResult에 데이터 소스를 바인딩하려 했습니까? – dahlbyk

관련 문제