visual ventajas studio que para instalar framework ejemplo desventajas descargar entity-framework sql-server-ce entity-framework-4

entity-framework - ventajas - instalar entity framework



Uso de Entity Framework con una instalaciĆ³n privada compacta de SQL (5)

Descubrí cómo hacerlo, gracias a una publicación de blog de Steve Lasker . Básicamente, esto es lo que tienes que hacer:

(1) Establezca una referencia a System.Data.SqlServerCe.dll en su proyecto. Establezca la propiedad CopyLocal en True.

(2) En App.config para su proyecto, agregue el siguiente marcado XML. Le dice a EntityFramework que busque su instalación privada de SQL Compact para su proveedor de datos:

<system.data> <DbProviderFactories> <remove invariant="System.Data.SqlServerCe.3.5"/> <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/> </DbProviderFactories> </system.data>

(3) En el proyecto de instalación, agregue los siguientes archivos a la carpeta de la aplicación en el Editor del sistema de archivos:

  • sqlcecompact35.dll
  • sqlceme35.dll
  • sqlcese35.dll
  • System.Data.SqlServerCe.Entity.dll

Estoy utilizando Entity Framework 4 en una aplicación de escritorio con SQL Compact. Quiero usar una instalación privada de SQL Compact con mi aplicación, para que mi instalador pueda instalar SQL Compact sin darle al usuario una segunda instalación. También evita los problemas de control de versiones en el futuro.

Mi máquina de desarrollo tiene SQL Compact 3.5 SP1 instalado como una instalación pública, por lo que mi aplicación funciona bien allí, como era de esperar. Pero no se está ejecutando en mi máquina de prueba, que no tiene instalado SQL Compact. Me sale este error:

The specified store provider cannot be found in the configuration, or is not valid.

Sé que algunas personas han tenido dificultades con las instalaciones privadas de SQL Compact, pero las he usado por un tiempo , y realmente me gustan. Lamentablemente, mi enfoque de instalación privada habitual no funciona. He comprobado los números de versión en mis archivos SQL CE, y son todos 3.8.8078.0, que es la versión SP2 RC.

Estos son los archivos que he incluido en mi instalación privada:

  • sqlcecompact35.dll
  • sqlceer35EN.dll
  • sqlceme35.dll
  • sqlceqp35.dll
  • sqlcese35.dll
  • System.Data.SqlServerCe.dll
  • System.Data.SqlServerCe.Entity.dll

He agregado una referencia a System.Data.SqlServerCe a mi proyecto, y he verificado que todos los archivos enumerados anteriormente se están copiando a la carpeta de la aplicación en la máquina de instalación.

Aquí está el código que utilizo para configurar EntityConnectionStringBuilder cuando abro un archivo SQL Compact:

var sqlCompactConnectionString = string.Format("Data Source={0}", filePath); // Set Builder properties builder.Metadata = string.Format("res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", edmName); builder.Provider = "System.Data.SqlServerCe.3.5"; builder.ProviderConnectionString = sqlCompactConnectionString; var edmConnectionString = builder.ToString();

¿Me falta un archivo? ¿Me falta un stepp de configuración necesario para decirle a Entity Framework dónde encontrar mis DLL Compact de SQL? ¿Alguna otra sugerencia de por qué EF no encuentra mis DLL Compact de SQL en la máquina de instalación? Gracias por tu ayuda.


Estar atrapado con el mismo problema,

"el proveedor de tienda especificado no se puede encontrar en la configuración o no es válido".

Vine por este post. Intenté casi todo. Instalé " System.Data.SqlServerCe " usando nugets.

Así que ya tenía una línea de código debajo agregada en mi web.config

<DbProviderFactories> <remove invariant="System.Data.SqlServerCe.4.0" /> <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe" /> <!--<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />--> <!--<add name="Microsoft EntityClient" invariant="System.Data.EntityClient.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.EntityClient, System.Data.EntityClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />--> </DbProviderFactories>

Todavía el error continuó ..

Me deshice del problema al descomentar las últimas dos líneas comentadas en el código anterior ... por lo que ahora se vuelve

<DbProviderFactories> <remove invariant="System.Data.SqlServerCe.4.0" /> <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe" /> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> <add name="Microsoft EntityClient" invariant="System.Data.EntityClient.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.EntityClient, System.Data.EntityClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </DbProviderFactories>

Espero que ayude .. Gracias.


Esto es lo que funcionó para mí:

Tienes un archivo machine.config para las versiones 2.0 y 4.0 de dotNet:

dotNET 2.0

C:/Windows/Microsoft.NET/Framework/v2.0.50727/CONFIG/machine.config dotNet 4.0

C:/Windows/Microsoft.NET/Framework/v4.0.30319/Config/machine.config

Si abre el archivo para la versión 2.0, verá que tiene un nodo <system.data>, que probablemente se parece a esto:

<system.data> <DbProviderFactories> <add name="Odbc Data Provider" ... stuff here ... /> <add name="OracleClient Data Provider" ... stuff here ...> ... more lines similar to the one above ... <add name="Microsoft SQL Server Compact Data Provider" Invariant="System.Data.SqlServerCe.3.5" ...> </DbProviderFactories> </system.data>

Mientras que, si abres el de dotNet 4.0, parece bastante más miserable:

<system.data> <DbProviderFactories> </DbProviderFactories> </system.data>

¡O tal vez ni siquiera tiene un nodo <system.data> en absoluto! En cualquier caso, simplemente copie el nodo <system.data> en su totalidad desde el archivo machine.config para v2 al de v4.

NOTA LATERAL

Si tiene problemas para guardar su edición de v4 machine.config, puede que tenga que hacer clic con el botón secundario un par de veces al hacer clic en el icono de inicio del editor para acceder al modo de administración.


Solo para el registro, con SQL CE 4 las entradas web.config son las siguientes:

<system.data> <DbProviderFactories> <remove invariant="System.Data.SqlServerCe.4.0" /> <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </DbProviderFactories> </system.data>

Versión = 4.0.0.1 en el caso de una implementación privada y Versión = 4.0.0.0 en el caso de una implementación general.


gracias por su consejo, me ayudó mucho. Hay una publicación en el blog de SQL Server Compact-Team que agrega algo de información adicional para el lanzamiento Sql Server Compact 3.5 SP2.

Después de luchar por un tiempo con la implementación privada de sql server compact, descubrí algunos requisitos adicionales.

Probé mi aplicación en varios sistemas diferentes y reconocí que mi aplicación no funcionaba correctamente en algunos de ellos.

Ejemplo: prueba esto:

-He configurado una instalación limpia winxp sp3

-instalado el .NET Framework 4.0 extendido

-desplegué mi aplicación a la nueva instalación (incluidos todos los archivos dll y ajustes necesarios que se describen en las publicaciones del blog del equipo compacto del servidor / sql)

Entonces, después de algunas investigaciones, descubrí que, además de la instalación de .net framework 4, también tenía que instalar .NET Framework 2 y funcionaba bien.

Así que aquí está mi pregunta: ¿qué componente utiliza la edición compacta del servidor sql que no está contenida en el .NET Framework 4?

No quiero sobrecargar mi configuración y encadenar dos frameworks a mi bootstrapper ... ¿Alguien sabe algo bueno?

¡Muchas gracias al equipo compacto del servidor sql!

SQL Server Compact v3.5 depende de ''Visual C ++ Runtime 2005 (o 8.0)'' (también conocido como CRT80). Enviamos los módulos CRT80 en nuestro MSI. En caso de implementación privada,

debes ocuparte de esta dependencia. Las cosas funcionan con .NET FX v2.0 en el sistema automáticamente porque .NET FX v2.0 también empaqueta e instala módulos CRT80.

Gracias