visual una studio préstamo programa para libros librerias libreria hacer crear clases biblioteca c# database plugins

studio - programa en c# para una biblioteca



Biblioteca de gestión de bases (3)

En nuestra compañía, trabajamos junto con varios sistemas de bases de datos (MySQL, MSSQL, PL / SQL, SQlite y SQLCe) para varios proyectos. Debido a esto, desarrollamos una biblioteca que pone todo en una interfaz agradable en la que podemos conectarnos a cada base de datos sin preocuparnos por la base de datos que está detrás. Pero esta biblioteca siempre requería instalar todas las bases de datos en la computadora de un cliente porque .Net insistía en eso (debido a las referencias). Así que usamos MEF para crear complementos de bases de datos donde la aplicación solo carga el complemento apropiado al inicio y no necesitamos ningún otro sistema de base de datos instalado en el sistema host.

De todos modos, todavía tenemos dificultades debido a las diferencias de cada base de datos. Digamos que queremos tener procedimientos que generen automáticamente tablas y datos necesarios en la base de datos de destino si no están disponibles. O si las diferentes bases de datos usan diferentes tipos de datos. Las cosas se están volviendo muy complicadas y, por ahora, también estamos interesados ​​en utilizar LINQ2SQL que no parece ser capaz de manejar MySQL, SQlite y PL / SQL.

Mi pregunta:

¿Hay alguna libre / oss C # biblioteca que se haga cargo de estas tareas? ¿Dónde podemos tener control total sobre nuestras bases de datos sin pensar en qué base de datos está ahora detrás?


Cualquier biblioteca madura de ORM hará el trabajo

Consulte este sitio para ver comparaciones de características y rendimiento de las populares bibliotecas ORM


NHibernate sería mi elección. Es más fácil de usar si accede a ella a través de la capa Castle ActiveRecord.


Entity Framework hace todo lo que necesita. Este marco tiene proveedores para varios motores de base de datos, también tiene un mecanismo de migración, que puede ajustar la base de datos para su aplicación, dependiendo de su modelo.