Nunca he usado LINQ antes, y estoy recibiendo un error en una aplicación que hace uso de ella. Este es un VB.NET (.NET 2.0) proyecto en Visual Studio 2008.

Aquí está el código erróneo:

Dim orderedRows = From r In resultRows Order By r.FIELDNAME Select r

Y aquí está el error (se han cambiado los nombres a algo genérico, pero de otra manera precisa):

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

Así que reconozco que necesito para importar bibliotecas LINQ. En este enlace me llevó a añadir “de las Importaciones del Sistema.Linq” para el archivo, sino que es una referencia sin resolver. Basado en el mismo enlace, me dí cuenta que necesitaba para agregar una referencia a “del Sistema.Core para mi proyecto, pero no aparece como una opción disponible cuando intento agregar una referencia (ni está ya activada).

Estoy seguro de que me estoy perdiendo algo básico. Puede que alguien me apunte en la dirección correcta?

TL;DR: ¿Qué necesito para utilizar LINQ para trabajar?

Así que si tienes el objetivo de la asamblea .Net3.0 o mayor, tiene el sistema tiene .NET 3.0 o posterior instalado? De lo contrario, no se puede añadir a las referencias del proyecto?
El sistema tiene .NET 3.5 instalado, y 4.0 así, para el caso. Pero el objetivo de esta aplicación es de 3.5.
¿Qué significa para ti “VB.NET (versión 2.0)”? La versión de VB se entregan con VB 2008 fue VB 9, no 2 (VB2 se ejecutó en DOS).
probablemente él quiso decir .NET 2.0. Editado por la aclaración.

OriginalEl autor JosephStyons | 2010-11-04

1 Comentario

  1. 9

    Actualización: a partir de los comentarios de la orientación .NET 2.0 y de intentar utilizar el Sistema.Linq resultaría en un error del compilador de la siguiente manera:

    Espacio de nombres o de tipo especificado en el
    Las Importaciones ” Del Sistema.Linq’ no contiene
    cualquier miembro del público, o no se encuentra.

    Para cambiar el objetivo de framework versión ir a las Propiedades del proyecto -> Compilar -> Opciones de Compilación Avanzadas… establecer en el Marco de Destino “.NET Framework 3.5” y volver a compilar.

    En caso de usar .NET 3.5 no es posible, se puede utilizar LINQBridge a hacer uso de LINQ to Objects, mientras que la orientación de la .NET framework 2.0.

    Mageed: Gracias por el consejo. Todos los tres de esas Importaciones me da este error:espacio de Nombres o de tipo especificado en la Importación de Sistema.Linq’ no contiene ningún miembro del público, o no se encuentra. Yo no veo el Sistema.De datos.DataSetExtensions como referencia, aunque sí tengo que .Archivo DLL en mi sistema “C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5”
    están seguros de que están construyendo en contra .NET 3.5? Ir a Propiedades de su proyecto -> Compilar -> Opciones de Compilación Avanzadas… es el Objetivo del Marco establecido “.NET Framework 3.5”?
    Yo era capaz de conseguir un idéntico mensaje por la orientación .NET 2.0 con Imports System.Linq incluido. La focalización .NET 3.5 funcionó bien para mí. En este momento estoy bastante seguro de que System.Data.DataSetExtensions es ajena a este problema.
    Estás en lo correcto. Este proyecto es en realidad la orientación .net 2.0. Lo siento por eso.
    no hay problema. Fuiste capaz de conseguir trabajo después de la orientación .NET 3.5?

    OriginalEl autor Ahmad Mageed

Dejar respuesta

Please enter your comment!
Please enter your name here