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

82

¿Qué proveedores hay y su experiencia con ellos?

Me gustaría conocer todos los posibles proveedores nativos de .NET Framework Entity Framework que existen, 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, aún mejor. Dime y estaré actualizando esta publicación con esta lista.

Siéntase libre de agregar proveedores adicionales directamente en esta publicación o proporcionar una respuesta y otros (incluido yo) la agregarán a la lista.

Entity Framework 1

Microsoft SQL Server Standard / Enterprise / Express

Microsoft SQL Server CE (edición compacta)

  • ¿Algún proveedor?

MySQL

  • MySQL Connector (desde la versión 6.0) - He leído acerca de los problemas cuando se utiliza Skip(), Take()y Sort()en el mismo árbol de expresión - todos la bienvenida a la entrada de su experiencia / conocimiento con respecto a esto.

    Nota : La integración de MySQL Connector / NET Visual Studio no es compatible con las ediciones Express de Visual Studio, lo que significa que no podrá ver las bases de datos MySQL en la ventana del Explorador de bases de datos o agregar una fuente de datos MySQL a través de 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 para MySQL : problemas similares al conector de MySql que he leído y ambos intentan culpar a MS por ello [se supone que estos problemas deben resolverse ]

SQLite

PostgreSQL

Oráculo

DB2

Sybase

Informix

Pájaro de fuego

Envoltorios de proveedores

Entity Framework 4 ( beta )

Microsoft SQL Server

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

MySQL

SQLite

PostgreSQL

Oráculo

Servicios de análisis de Microsoft SQL Server (SSAS)

Robert Koritnik
fuente
2
Cualquiera: ¿hay proveedores de InMemory? Por supuesto, las opciones disponibles se reducirán en gran medida ... pero algo es mejor que nada, ¿verdad?
Pure.Krome
sqlite tiene una opción de base de datos en memoria que es perfecta para pruebas automatizadas, rápida, ligera y con casi todas las funciones.
Jason Meckley
1
Dato curioso: esta es una de las pocas preguntas sobre SO con 5 o más respuestas y donde la puntuación total de todas las respuestas disponibles es menos de 1/3 de la puntuación de la pregunta. :)
dotNET

Respuestas:

3

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

También tuve algunos problemas de rendimiento con el proveedor de IBM. Hay otro proveedor disponible de una empresa llamada DataDirect. Parece ser más eficaz, pero le costará. Para algo como un sitio web externo, donde la velocidad es importante, el costo probablemente no será un problema.

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

RepDetec
fuente
3

No creo que DB2 funcione con EF 4 todavía. Si es así, alguien me corrija y me diga cómo se hace. No puedo hacer que los proveedores de DB2 aparezcan en los cuadros de diálogo Fuente de datos.

camainc
fuente
1
La lista superior no indica el soporte de DB2 para EF4 de todos modos.
Robert Koritnik
2

El proveedor de servidor de datos de IBM para .NET permite a Informix trabajar con EF. Ver aquí: texto del enlace

Joel
fuente
2

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, EDMX Designer no funciona con tablas de Informix con el prefijo "informix. *". Ver aquí: texto del enlace

Joel
fuente
2

Falta System.Data.SQLite para SQLite. Es de código abierto y bastante confiable según mi experiencia. Hasta donde yo sé, fue uno de los primeros proveedores de EF para bases de datos distintas de SQL Server

Thomas Levesque
fuente
2

Los problemas de "Omitir / Tomar y ordenar" se solucionaron hace varios meses en el proveedor de Devart.

Algunas notas sobre la compatibilidad con EF4
Por el momento, proporcionamos compatibilidad con Visual Studio Beta 1 y EF4 Beta 1. Planeamos lanzar la compilación con compatibilidad con EF4 a finales de diciembre - principios de enero. No podemos llamar a nuestro soporte de Entity Framework uno ideal: este ORM fue diseñado 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 solucionar. Algunos ejemplos están disponibles aquí . El problema principal está asociado con las declaraciones CROSS APLY y OUTER APPLY generadas por el tiempo de ejecución de EF en algunos casos. Otros DBMS no proporcionan esta declaración, por lo que el problema surge con la traducción. También se debe tener en cuenta que en el caso de bases de datos heredadas, EF generalmente no es aplicable.

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

Devart
fuente
¿Su proveedor funciona correctamente con importaciones de funciones (procedimiento almacenado) que aceptan parámetros? porque estaba teniendo problemas con el conector de MySql.
Robert Koritnik
No tenemos ninguna solicitud abierta considerando importaciones de funciones parametrizadas en este momento. Pero puede comprobar que dotConnect for MySQL cumple con sus requisitos, simplemente descargue la versión de prueba de nuestro sitio. Una cosa más real para EF v1: proporcionamos soporte no solo para importaciones de funciones, sino también para procedimientos que no devuelven ningún conjunto de resultados. Se logró gracias a la generación de código específico y la herramienta Entity Developer.
Devart
2

EF 7 admite los siguientes proveedores de bases de datos

• Microsoft SQL Server

• SQLite

• Microsoft SQL Server Compact Edition

• Npgsql (PostgreSQL)

• Servidores de datos de IBM

• InMemory (para pruebas)

Referencia

Aamol
fuente
Creo que ahora se ha cambiado el nombre de EntityFrameworkCore, ya que es considerablemente diferente: thedatafarm.com/data-access/…
andrew pate
1

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

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

lo que dificulta el uso completo del enfoque del 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 el nivel de compromiso de su parte, pero ciertamente es más bajo de lo que era antes.

Dicho esto, los mismos métodos también fallan con SQL CE (no están implementados, y no creo que el equipo de MS lo aborde pronto).

RedGlyph
fuente
Puede encontrar más información sobre el soporte de MySQL para VS2010 / EF4 en esta página: dev.mysql.com/doc/refman/5.1/en/… . Necesitará MySQL Connector / Net versión 6.3.2 o superior.
mathijsuitmegen