L'accesso è solo una cattiva, cattiva idea. Credo che MS includa solo l'accesso in Office per mantenere gli utenti legacy felici.
Anche se si trova un ORM che funziona con un database di Access, con poche eccezioni si sta bloccando in uno strumento di nicchia che probabilmente non funzionerà immediatamente con un vero motore di database. Se in seguito decidi di passare a un vero motore di database, non dovrai solo gestire la migrazione del database, ma passare a un ORM diverso.
See this comparison between SQL Server Express and SQL Server Compact. Il documento di confronto menziona anche alcuni problemi con altri archivi di dati, incluso Access.
se siete veramente preoccupati per essere in grado di installare SQL Server Express, prendere in considerazione SQL Server Compact:
può essere collegato nella vostra applicazione ridistribuibile. Non è necessario installare un servizio (che potrebbe richiedere diritti di amministratore durante l'installazione dell'applicazione); tutto è a posto quando installi la tua app. Questo ha più senso se hai bisogno che i dati risiedano sulla macchina dell'utente invece che su un server, ed è più simile all'utilizzo di Access.
è meno potente di Express (non supporta le viste, trigger, stored procedure, che io considero un requisito)
può essere scalata fino a Express o altre versioni di SQL Server molto facilmente
Adatto ingombro ridotto installa come compresse, dispositivi portatili, ecc
tenere sempre scalabilità nella pianificazione di qualsiasi applicazione. Non vuoi finire di dover scrivere un compilatore PHP-> C++ se/quando la tua app ha successo solo perché hai scelto lo strumento sbagliato.
Mentre siamo in argomento:
Il grande problema con Access (o, in questo caso, il motore Jet, che è la parte che ci realmente utilizzare per l'integrazione di un database di Access con un App .NET) è che non esiste un "server" che gestisce le richieste di datase. Il motore, ospitato nella tua app, deve leggere e scrivere direttamente su un file su disco che contiene il database. Ogni volta che ciò accade, il file deve essere bloccato per impedire le scritture simultanee. Le letture sporche diventano più comuni con la crescita del numero di utenti, così come il potenziale di corruzione del database.
Immagina di avere ogni cliente in un grande ristorante che tenta di entrare contemporaneamente in cucina per scrivere gli ordini o recuperare il cibo. Il caos sarebbe risultato. Ci sarebbero un sacco di piatti rotti, la cucina sarebbe un disastro, avresti la fortuna di ottenere ciò che hai ordinato in qualsiasi condizione commestibile. Con un cliente, questo probabilmente funziona bene. Con 5, eh, forse. Con 20,50,1000? Non così tanto.
Così, l'industria della ristorazione ha introdotto camerieri e manager che tamponano IO in cucina.L'applicazione server di database fa qualcosa di analogo a ciò restringendo l'accesso ai file sul disco. Ognuno ottiene quello che vuole, più veloce e in un modo molto più affidabile, e l'archivio dati è protetto.
In che lingua stai cercando un ORM? – snicker
C#. Modificherò la domanda per chiarire. –
Da uno degli altri commenti, si tratta di un'applicazione che si intende distribuire sui computer client, ognuno dei quali esegue il proprio database? o un database centrale a cui i tuoi clienti si collegheranno? So che questo non è rilevante per la tua domanda iniziale, ma sembra che questa sia la strada da seguire. Se questo è il caso, vorrei raccomandare SQLite per il tuo database. – snicker