visual studio net mvc implement how from framework first example ejemplo data create asp c# .net visual-studio-2008 linq-to-entities entities

c# - studio - El tipo o el nombre del espacio de nombres ''Objetos'' no existe en el espacio de nombres ''System.Data''



entity framework c# ejemplo (8)

Estoy usando entidades, C # y SQL Server para crear una aplicación de n niveles. Estoy creando algunas clases base comunes a todos mis componentes DAL. En esta clase base, quiero manejar el estado de conexión de la clase base ObjectContext heredada por objeto de entidades.

La compilación arroja el siguiente error:

El tipo o el nombre del espacio de nombres ''Objetos'' no existe en el espacio de nombres ''System.Data'' (¿falta una referencia de ensamblado?)

Además, la instrucción using System.Data.Objects no se resuelve por el mismo motivo.

Traté de agregar el ensamblado como referencia, pero no pude encontrarlo en la pestaña .NET de las referencias de ensamblaje.

¿Alguna idea? ¡Gracias!


Actualizado desde EF5 a EF6 nuget hace un tiempo atrás y siguió encontrando este problema. Me gustaría solucionarlo actualizando el código generado para hacer referencia a System.Data.Entity.Core.Objects , pero después de la generación se volvería a cambiar (como se esperaba desde que se generó).

Esto resolvió el problema para siempre:

http://msdn.microsoft.com/en-us/data/upgradeef6

Si tiene modelos creados con EF Designer, deberá actualizar las plantillas de generación de códigos para generar el código compatible con EF6. Nota: Actualmente, solo hay plantillas EF 6.x DbContext Generator disponibles para Visual Studio 2012 y 2013.

  1. Eliminar plantillas de generación de código existentes. Estos archivos normalmente se denominarán <nombre_de_archivo_de_eduario> .tt y <nombre_de_archivo_de_ejemplo> .Context.tt y se anidarán en su archivo edmx en el Explorador de soluciones. Puede seleccionar las plantillas en el Explorador de soluciones y presionar la tecla Supr para eliminarlas.
    Nota: en los proyectos del sitio web, las plantillas no se anidarán en su archivo edmx, sino que se enumerarán junto a él en Solution Explorer.
    Nota: En los proyectos de VB.NET, deberá habilitar ''Mostrar todos los archivos'' para poder ver los archivos de plantilla anidados.
  2. Agregue la plantilla de generación de código EF 6.x apropiada. Abra su modelo en el EF Designer, haga clic derecho en la superficie de diseño y seleccione Agregar elemento de generación de código ...
    • Si está utilizando la API DbContext (recomendado), EF 6.x DbContext Generator estará disponible en la pestaña Datos .
      Nota: Si está usando Visual Studio 2012, deberá instalar las herramientas EF 6 para tener esta plantilla. Vea Get Entity Framework para más detalles.
    • Si está utilizando la API ObjectContext, deberá seleccionar la pestaña En línea y buscar EF 6.x EntityObject Generator .
  3. Si aplicó alguna personalización a las plantillas de generación de código, deberá volver a aplicarlas a las plantillas actualizadas.

Agregué una referencia al archivo .dll, para System.Data.Linq, lo anterior no era suficiente. Puede encontrar .dll en los diversos directorios para las siguientes versiones.

System.Data.Linq C: / Archivos de programa (x86) / Reference Assemblies / Microsoft / Framework / v3.5 / System.Data.Linq.dll 3.5.0.0

System.Data.Linq C: / Archivos de programa (x86) / Conjuntos de referencia / Microsoft / Framework.NETFramework / v4.0 / Profile / Client / System.Data.Linq.dll 4.0.0.0


Debe agregar una referencia al ensamblado .NET System.Data.Entity.dll.


En mi caso para EF 6+, al usar esto:

System.Data.Entity.Core.Objects.ObjectQuery

Como parte de este comando:

var sql = ((System.Data.Entity.Core.Objects.ObjectQuery)query).ToTraceString();

Tengo este error:

Cannot cast ''query'' (which has an actual type of ''System.Data.Entity.Infrastructure.DbQuery<<>f__AnonymousType3<string,string,string,short,string>>'') to ''System.Data.Entity.Core.Objects.ObjectQuery''

Así que terminé teniendo que usar esto:

var sql = ((System.Data.Entity.Infrastructure.DbQuery<<>f__AnonymousType3<string,string,string,short,string>>)query).ToString();

Por supuesto, su firma de tipo anónimo puede ser diferente.

HTH.



Necesita agregar una referencia al ensamblado .NET System.Data.Linq


Si está utilizando Entity Framework 6, el espacio de nombre ha cambiado. Quieres usar

System.Data.Entity.Core.Objects.ObjectQuery


si quieres usar "System.Data.Objects.EntityFunctions"

use "System.Data.Entity.DbFunctions" en EF 6.1+