2010-11-12 16 views
5

Tengo una aplicación cliente (WPF, C#, .net4) que utiliza el modelo de entidad POCO conectado a través del proveedor SQLITE. Así que quiero tener las mismas entidades de este proyecto en un proyecto asp.net (con el proveedor MSSQL), para usar allí las mismas entidades que utilizo en mi aplicación cliente. Quiero crear algún tipo de funcionalidad de replicación entre mi aplicación cliente (SQLITE) y el servidor web (MSSQL) usando el mismo modelo poco usando servicios web.Un modelo POCO con diferentes proveedores de datos

Así que tengo una referencia al modelo de mi entidad en ambos proyectos con diferentes cadenas de conexión para los archivos de edmx. Y en este caso (porque edmx fue compilado para el proveedor de sqlite) cuando estoy tratando de utilizar el proveedor de datos mssql consigo una excepción:

incapaz de lanzar System.Data.SqlConnection a System.Data.SQliteConnection

Entonces, ¿mi pregunta es si es posible utilizar diferentes proveedores de datos en un modelo de entidades? ¿Cuál es la mejor manera de usar el mismo modelo en diferentes proyectos?

Respuesta

1

Si entiendo su pregunta correctamente, entonces si está buscando su modelo EF para admitir implementaciones de bases de datos múltiples, esto no es posible de la caja. El archivo SSDL generado automáticamente por EF contendrá metadatos específicos del proveedor y, por lo tanto, restringirá su independencia de las diferentes implementaciones de bases de datos que está utilizando.

Hay algunos articles que ofrecen formas de evitar esto, pero esto requiere una copia separada de su modelo para cada proveedor y piratear el XML generado con los detalles del proveedor.

+0

cpedros, gracias - esto era exactamente lo que necesito :), ahora tengo un modelo para ambos proveedores – DolceVita

0

con POCO debería ser posible. Mientras el servicio web pase datos xml o json, no estará vinculado a ninguna implementación específica de conector de datos. No estoy seguro de qué será en modo binario, posiblemente haya algún enlace al modelo de datos. ¿Recibió este error de la aplicación WPF o del servicio web? Parece que todavía estás intentando probar esta aplicación cliente interna. ¿Has intentado implementar el servicio web todavía?

Cuestiones relacionadas