Pregunta

He utilizado Entity Framework para iniciar un proyecto de muestra bastante simple.En el proyecto, creé 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.

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 pudiera ejecutarse en los almacenes de datos de SQL Server y Oracle con el mínimo esfuerzo.Esperaba poder simplemente cambiar la cadena de configuración de mi Entity Data Model y Entity Framework se encargaría del resto.Sin embargo, parece que no funcionará tan perfectamente como pensaba.

¿Alguien ha hecho lo que estoy intentando hacer?Nuevamente, estoy intentando 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 alternar entre 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 pueda ser necesario?

¿Fue útil?

Solución

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

Pero creo que lo que realmente tenías en mente era la independencia de la base de datos.Con una gran configuración XML que incluye el modelo de almacenamiento, el modelo conceptual y el mapeo entre esos dos a partir del cual se generará un ObjectContext escrito en tiempo de diseño, 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 ADO.NET independiente de la base de datos como el de Datos directos.DataDirect también ha anunciado el soporte de EF para el tercer trimestre de 2008.

Otros consejos

http://blogs.msdn.com/jkowalski/archive/2008/09/09/persistence-ignorance-poco-adapter-for-entity-framework-v1.aspx

El principal problema es que el marco de la entidad no se diseñó teniendo en cuenta la ignorancia persistente.Honestamente, consideraría usar algo que no sea el marco de la entidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top