2008-09-16 11 views
7

He utilizado Entity Framework para comenzar un proyecto de muestra bastante simple. En el proyecto, he creado un nuevo modelo de datos de entidad a partir de una base de datos SQL Server 2000. Puedo consultar los datos usando LINQ to Entities y mostrar valores en la pantalla.Cómo implementar la independencia de la base de datos con Entity Framework

Tengo una base de datos Oracle con un esquema extremadamente similar (estoy tratando de ser exacto pero no conozco todos los detalles de Oracle). Me gustaría que mi proyecto se pueda ejecutar en las tiendas de datos de SQL Server y Oracle con un mínimo esfuerzo. Esperaba poder simplemente cambiar la cadena de configuración de mi Modelo de Datos de Entidad y Entity Framework se encargaría del resto. Sin embargo, parece que no funcionará a la perfección como pensé.

¿Alguien ha hecho lo que estoy tratando de hacer? Una vez más, estoy tratando de escribir una aplicación que pueda consultar (y actualizar) datos de una base de datos SQL Server u Oracle con un mínimo esfuerzo utilizando Entity Framework. El objetivo secundario es no tener que volver a compilar la aplicación al pasar y retroceder entre los almacenes de datos. Si tengo que "Actualizar el modelo desde la base de datos", podría estar bien porque no tendría que volver a compilar, pero preferiría no tener que seguir esta ruta. ¿Alguien sabe de algún paso que podría ser necesario?

+2

LOL si no proporciona ignorancia de la base de datos, ¿para qué sirve el marco de entidades? ¡Dios! – Sklivvz

+0

@YeahStu .. Tengo el mismo requisito, ya que he visto que la publicación es bastante antigua ... Entity Framework se ha modificado hasta ahora ... ¿fue capaz de lograr la independencia de la base de datos utilizando EF ... ayúdenme con esto y comparta su solución alternativa ... Muchas gracias de antemano. – NMathur

Respuesta

2

Lo que generalmente se entiende bajo el término "Ignorancia de persistencia" es que las clases de entidad no están siendo inundadas con dependencias de marco (importante para los escenarios de N niveles). Este no es el caso en este momento, ya que las clases de entidades deben implementar ciertas interfaces de EF ("IPOCO"), a diferencia de los antiguos objetos de CLR. Como ha mencionado otro cartel, existe una solución llamada Persistence Ignorance (POCO) Adapter for Entity Framework V1 para eso, y EF V2 admitirá POCO de fábrica.

Pero creo que lo que realmente tenía en mente era la independencia de la base de datos. Con un gran XML de configuración que incluye el modelo de almacenamiento, el modelo conceptual y el mapeo entre los dos de los cuales se generará un ObjectContext tipeado en designtime, también me resulta difícil imaginar cómo admitir de forma transparente dos bases de datos.

Lo que probablemente parezca más prometedor es aplicar un proveedor de ADO.NET independiente de la base de datos como el de DataDirect. DataDirect también anunció el soporte de EF para Q3/2008.

Cuestiones relacionadas