2013-03-20 15 views
6

Nella nostra azienda, lavoriamo insieme a diversi sistemi di database (MySQL, MSSQL, PL/SQL, SQlite e SQLCe) per vari progetti. Per questo motivo, abbiamo sviluppato una libreria che mette tutto in una bella interfaccia in cui possiamo connetterci a ciascun database senza preoccuparci di quale database ci sia dietro. Ma questa libreria richiedeva sempre di installare ogni database su un computer client perché .Net insisteva sul fatto che (a causa dei riferimenti). Quindi abbiamo utilizzato MEF per creare plug-in di database in cui l'applicazione carica solo il plug-in appropriato all'avvio e non abbiamo bisogno di altri sistemi di database installati sul sistema host.Libreria di gestione database

In ogni caso, siamo ancora in difficoltà a causa delle differenze di ogni database. Diciamo che vogliamo avere procedure che generano automaticamente tabelle e dati richiesti nel database di destinazione, se non sono disponibili. O se i diversi database utilizzano diversi tipi di dati. Le cose si stanno complicando e per ora ci interessa anche usare LINQ2SQL che non sembra in grado di gestire MySQL, SQlite e PL/SQL.

La mia domanda:

C'è qualche C biblioteca libera/OSS # che assume questi compiti? Dove possiamo avere il pieno controllo dei nostri database senza pensare a quale database è ora dietro?

risposta

0

Entity Framework fa tutto ciò di cui hai bisogno. Questo framework ha provider per un numero di motori di database, inoltre ha un meccanismo di migrazione, che può regolare il database per l'applicazione, a seconda del modello.

4

qualsiasi libreria ORM maturo farà il lavoro

Controllare this sito per vedere il confronto di caratteristiche e prestazioni di librerie ORM popolari

+0

Ho trascorso gli ultimi giorni a studiare Entity Framework e non sono ancora sicuro se questo si adatta alle nostre esigenze. Spero che tu possa chiarire alcuni punti: 1) Sembra che EF dipenda pesantemente da Visual Studio Environment, anche app.config, ma abbiamo la nostra soluzione di configurazione. Come posso specificare una stringa di connessione senza utilizzare app.config? 2) Quando EF crea un nuovo database, sembra che crei un SQLCeDB. È configurabile? 3) È possibile avere più connessioni contemporaneamente a diversi database? – Neurodefekt

+0

1) È possibile utilizzare completamente EF senza Visual Studio, ad esempio prima controllare il codice EF, tuttavia i progettisti VS sono utili e pratici quando si crea un modello dal database esistente, ma non è ancora richiesto. 2) EF può funzionare con qualsiasi database moderno 3) Controllare http://stackoverflow.com/questions/2659942/entity-framework-4-and-multiple-database – jezzarax

0

NHibernate sarebbe la mia scelta. È più facile da usare se accedete tramite il livello Castle ActiveRecord.

Problemi correlati