J'essaie d'effectuer une requête sur un résultat de requête, mais une erreur se produit: "La méthode ou l'opération n'est pas implémentée". Puis-je chaîner les requêtes de cette manière? Par exemple, j'ai un DataSet typé Northwind. Je fais:Chaînage de requêtes LINQ de base de données dans LINQ à DataSet
queryResult = From product In NorthWindDataSet.Products
Where (product.UnitsOnOrder > CInt(txtUnitsOnOrderFilter.Text))
Select product
Alors je tente de faire
queryResult = From product In queryResult
Where (product.CategoryID = cboCategoryFilter.SelectedValue)
Select product
Pour utiliser finalement résultat d'une requête en tant que source de liaison: ProductsBindingSource.DataSource = queryResult.AsDataView()
Comment J'accomplis cela?
J'ai essayé d'utiliser des valeurs littérales, comme vous le suggérez, par exemple des unités Dim = 2 et Dim catId = 3, mais maintenant que je reçois: « Impossible de créer DataView après avoir utilisé projection "exception at System.Data.EnumerableRowCollection'1.GetLinqDataView(). Il est important pour moi d'être en mesure d'effectuer une requête sur le résultat de la requête que j'ai posté à l'origine, car les conditions sont appliquées dynamiquement. Cela signifie que, parfois, seules les unités, parfois seulement les paires et parfois les deux, sont utilisées. – Dan
Est-ce que vous faites une sorte de projection sur queryResult après ce filtrage, peut-être en sélectionnant juste Product.ID ou quelque chose? Cela semble être ce qui causerait cette erreur. Aussi, avez-vous essayé de lier votre source de données à queryResult sans appeler AsDataView()? – dahlbyk