Una lista de proveedores de Entity Framework para varias bases de datos

Qué proveedores están ahí y tu experiencia al usarlos

Me gustaría conocer todos los posibles proveedores nativos de .NET Framework Entity Framework que están disponibles, así como sus limitaciones en comparación con las LINQ2Entities predeterminadas (de MS para MS SQL). Si hay más para la misma base de datos, mejor. Dímelo y actualizaré esta publicación con esta lista.

Siéntase libre de agregar proveedores adicionales directamente en esta publicación o proporcionar una respuesta y otros (incluyéndome a mí) lo agregarán a la lista.

Marco de la entidad 1

Microsoft SQL Server Standard / Enterprise / Express

  • Entidades Linq 2 – Conector de Microsoft SQL Server
  • Proveedores de datos ADO.NET de DataDirect

Microsoft SQL Server CE (Edición Compacta)

  • Cualquier proveedor?

MySQL

  • MySQL Connector (desde la versión 6.0) – He leído sobre problemas al usar Skip() , Take() y Sort() en el mismo árbol de expresiones; todos son bienvenidos para ingresar su experiencia / conocimiento con respecto a esto.

    Nota : MySQL Connector / NET Visual Studio Integration no es compatible con Express Editions de Visual Studio, lo que significa que no podrá ver las bases de datos MySQL en la ventana del explorador de bases de datos ni agregar una fuente de datos MySQL mediante los cuadros de diálogo del asistente de Visual Studio. Algunos usuarios pueden encontrar que esto limita su capacidad para usar Entity Framework y MySQL dentro de Visual Studio Express).

  • Devart dotConnect for MySQL : problemas similares al conector de MySql que he leído y ambos tratan de culpar a MS por ello [se supone que estos problemas se resolverán ]

SQLite

  • Devart dotConnect para SQLite
  • System.Data.SQLite

PostgreSQL

  • Devart dotConnect para PostgreSQL
  • Npgsql

Oráculo

  • Devart dotConnect para Oracle
  • Proveedor de marco de entidades de ejemplo para Oracle – proyecto de esfuerzo comunitario
  • Proveedores de datos ADO.NET de DataDirect

DB2

  • IBM Data Server Provider tiene soporte de EF . Aquí hay algunas limitaciones .
  • Proveedores de datos ADO.NET de DataDirect

Sybase

  • Sybase iAnywhere
  • Proveedores de datos ADO.NET de DataDirect

Informix

  • IBM Data Server Provider es compatible con Informix

Firebird

  • Proveedor de datos ADO.NET con soporte de EF

Contenedores de proveedores

  • Proveedores de seguimiento y almacenamiento en caché para EF

Entity Framework 4 ( beta )

Microsoft SQL Server

  • Linq de Microsoft a Entities 4: enviado con .net 4.0 y Visual Studio 2010; hasta ahora el único proveedor de EF4

MySQL

  • Conector MySQL .NET , la mayoría de los problemas funcionales pero pendientes con los métodos CreateDatabase y DatabaseExists (v6.3.5)
  • Devart dotConnect para MySQL

SQLite

  • Devart dotConnect para SQLite

PostgreSQL

  • Devart dotConnect para PostgreSQL

Oráculo

  • Devart dotConnect para Oracle

Microsoft SQL Server Analysis Services (SSAS)

  • Proveedor del marco de la entidad SSAS

DB2 funcionará, pero si desea utilizar algunas de las características de .NET listas para usar que todos damos por sentado (piense en la membresía y los proveedores de roles), tendrá mucho trabajo en sus manos. En realidad, DB2 no funciona bien con los procedimientos almacenados, por lo que también está buscando una gran cantidad de SQL en línea parametrizados.

También tuve algunos problemas de rendimiento con el proveedor de IBM. Hay otro proveedor disponible de una compañía llamada DataDirect. Parece ser más eficiente, pero te costará. Para algo así como un sitio web externo, donde la velocidad es importante, el costo probablemente no sea un problema.

Estoy seguro de que DB2 es un gran sistema si está construyendo en otra plataforma, pero en realidad no fue diseñado para jugar bien con .NET. A menos que ya esté casado con DB2, buscaría en otro lado.

No creo que DB2 funcione con EF 4 todavía. Si lo hace, alguien por favor corrígeme y dime cómo se hace. No puedo hacer que los proveedores de DB2 aparezcan en los cuadros de diálogo Fuente de datos.

IBM Data Server Provider para .NET permite que Informix trabaje con EF. Ver aquí: texto del enlace

El Proveedor de Servidor de Datos de IBM contiene algunas limitaciones que lo hacen irritante y frágil para escenarios de consulta más complejos. Además, el diseñador de EDMX no funciona con las tablas de Informix con el prefijo “informix. *”. Ver aquí: texto del enlace

Te falta System.Data.SQLite para SQLite. Es de código abierto, y bastante confiable desde mi experiencia. Por lo que sé, fue uno de los primeros proveedores de EF para bases de datos distintas de SQL Server

Los problemas de “Saltar / Tomar y ordenar” se arreglaron hace varios meses en el proveedor Devart.

Algunas notas sobre el soporte de EF4
Por el momento, brindamos soporte para Visual Studio Beta 1 y EF4 Beta 1. Planeamos lanzar la construcción con soporte de EF4 a fines de diciembre y principios de enero. No podemos llamar a nuestro soporte de Entity Framework el ideal: este ORM se diseñó inicialmente para MS SQL Server, por lo que la posibilidad de tener en cuenta las maravillas de otros DBMS es significativamente limitada.

Hay una serie de problemas que el que implementa un proveedor de EF simplemente no puede evitar. Algunos ejemplos están disponibles aquí . El problema principal está asociado con las sentencias CROSS APLY y OUTER APPLY generadas por el tiempo de ejecución de EF en algunos casos. Otros DBMS no proporcionan esta statement, por lo que el problema surge con la traducción. También se debe tener en cuenta que, en el caso de las bases de datos heredadas, EF generalmente no es apta.

Tomamos en cuenta a los usuarios que no están satisfechos con el diseñador predeterminado de Microsoft y envían Entity Developer , una poderosa herramienta de tiempo de diseño, con nuestros productos.

EF 7 es compatible con los siguientes proveedores de DB

• Microsoft SQL Server

• SQLite

• Microsoft SQL Server Compact Edition

• Npgsql (PostgreSQL)

• Servidores de datos de IBM

• InMemory (para prueba)

Referencia

MySQL tiene un conector para EF4 , la versión actual es 6.3.5 y sus funcionalidades principales funcionan bien, pero todavía tiene problemas con algunos métodos, por ejemplo

  • System.Data.Objects.ObjectContext.CreateDatabase ()
  • System.Data.Objects.ObjectContext.DatabaseExists ()

lo que hace que sea difícil utilizar por completo el enfoque de modelo primero. Es posible editando manualmente el script MySQL (disponible con el método CreateDatabaseScript). El equipo de MySQL no parece ansioso por resolver esos errores, no estoy seguro de cuál es realmente el nivel de compromiso de su parte, pero ciertamente es más bajo de lo que fue alguna vez.

Dicho eso, los mismos métodos también fallan con SQL CE (no se implementan, y no creo que el equipo de MS lo aborde pronto).

Los problemas con Connector / NET en los operadores Take / Skip se han solucionado hace mucho tiempo (el proveedor EF es actualmente compatible con EF 5 y EF 4).

Entre los errores corregidos:

http://bugs.mysql.com/bug.php?id=45723

http://bugs.mysql.com/bug.php?id=72148

http://bugs.mysql.com/bug.php?id=70828

http://bugs.mysql.com/bug.php?id=69751

Gracias.