Les importations et les références nécessaires à l'utilisation de LINQ
Je n'ai jamais utilisé de LINQ avant, et j'obtiens une erreur dans une application qui les utilise. C'est un VB.NET (.NET 2.0) du projet dans Visual Studio 2008.
Voici le code fautif:
Dim orderedRows = From r In resultRows Order By r.FIELDNAME Select r
Et voici l'erreur (les noms ont été changés pour quelque chose de générique, mais sinon exacte):
Expression of type '1-dimensional array of
Company.OurLibrary.FunctionalArea.Library.StoredProcStuff.USP_MYPROC.ResultRow'
is not queryable. Make sure you are not missing an assembly
reference and/or namespace import for the LINQ provider.
C:\project\filename.vb
Si je reconnais que j'ai besoin d'importer des bibliothèques LINQ. Ce lien m'a conduit à ajouter des "Importations Système.Linq" dans le fichier, mais qui est une référence non résolue. Basé sur le même lien, j'ai pensé que j'avais besoin d'ajouter une référence à "le Système de.De base" pour mon projet, mais il n'est pas répertorié comme une option disponible lorsque j'essaie d'ajouter une référence (ni est-il déjà cochée).
Je me sens sûr que je suis absent quelque chose de fondamental. Quelqu'un peut me pointer dans la bonne direction?
TL;DR: de Quoi ai-je besoin pour LINQ to travail?
Le système dispose .NET 3.5 est installé, et 4.0 ainsi, pour cette question. Mais l'objectif de cette application est de 3,5.
Qu'entendez-vous par “VB.NET (version 2.0)”? La version de VB livré avec visual basic 2008 a été VB 9, pas 2 (VB2 a couru sur le DOS).
il a probablement voulu dire .NET 2.0. Édité pour plus de précisions.
OriginalL'auteur JosephStyons | 2010-11-04
Vous devez vous connecter pour publier un commentaire.
Mise à jour: sur la base des observations de ciblage .NET 2.0 et d'essayer d'utiliser le Système.Linq seraient le résultat d'une erreur du compilateur comme suit:
Pour changer le ciblées framework version aller les Propriétés du projet -> Compiler -> Avancé des Options de Compilation... définir la Cible Cadre ".NET Framework 3.5" et recompiler.
Dans le cas où l'aide .NET 3.5 n'est pas possible, vous pouvez utiliser LINQBridge de rendre l'utilisation de LINQ to Objects tout en ciblant les .NET framework 2.0.
êtes-vous sûr que vous êtes la construction de contre .NET 3.5? Accédez aux Propriétés de votre projet -> Compiler -> Avancé des Options de Compilation... est le Framework Cible à définir ".NET Framework 3.5"?
J'ai été en mesure d'obtenir un message identique par le ciblage .NET 2.0 avec
Imports System.Linq
inclus. Le ciblage .NET 3.5 a bien fonctionné pour moi. À ce point, je suis assez sûrSystem.Data.DataSetExtensions
est sans rapport avec cette question.Vous êtes correct. Ce projet est en fait de ciblage .net 2.0. Désolé à ce sujet.
pas de problème. Avez-vous été en mesure de le faire fonctionner après le ciblage .NET 3.5?
OriginalL'auteur Ahmad Mageed