Доступ это просто плохая, плохая идея. Я считаю, что MS включает в себя только доступ в Office, чтобы старые пользователи были довольны
Даже если вы найдете ORM, который будет работать с базой данных Access, за немногими исключениями вы заперетесь в нишевом инструменте, который, вероятно, не будет работать из коробки с реальным механизмом базы данных. Если позже вы решите переключиться на реальный движок базы данных, вам придется не только заниматься миграцией базы данных, но и переключаться на другой ORM.
См. Это сравнение между SQL Server Express и SQL Server Compact . В документе сравнения также упоминаются некоторые проблемы с другими хранилищами данных, включая Access.
Если вы ДЕЙСТВИТЕЛЬНО обеспокоены возможностью установки SQL Server Express, рассмотрите вариант SQL Server Compact:
это может быть связано с вашим распространяемым приложением. Нет необходимости устанавливать сервис (для этого могут потребоваться права администратора во время установки вашего приложения); все позаботится, когда вы установите приложение. Это имеет смысл, если вам нужно, чтобы данные находились на компьютере пользователя, а не на сервере, и наиболее аналогично использованию Access.
Он менее мощный, чем Express (не поддерживает представления, триггеры, хранимые процедуры, которые я считаю обязательными)
Очень легко масштабируется до Express или других версий SQL Server
Подходит для небольших установок, таких как планшеты, мобильные устройства и т. Д.
Всегда учитывайте масштабируемость при разработке любого приложения. Вы не хотите, чтобы вам пришлось писать компилятор PHP-> C ++, если / когда ваше приложение станет успешным только потому, что вы выбрали неправильный инструмент заранее.
Пока мы на этом:
Большая проблема с Access (или, в данном случае, движком Jet, который вы действительно используете при интеграции базы данных Access с приложением .NET) заключается в том, что не существует «сервера», который обрабатывает запросы данных. Движок, размещенный в вашем приложении, должен читать и записывать непосредственно в файл на диске, который содержит базу данных. Всякий раз, когда это происходит, файл должен быть заблокирован для предотвращения одновременной записи. Грязное чтение становится все более распространенным по мере роста числа пользователей, равно как и вероятность повреждения базы данных.
Представьте себе, что каждый клиент в большом ресторане пытается одновременно войти на кухню, чтобы записать свои заказы или забрать их еду. Хаос в результате. Там будет много разбитой посуды, на кухне будет беспорядок, вам повезет получить то, что вы заказали, в любых съедобных условиях. С одним клиентом это, вероятно, работает нормально. С 5, а, может быть. С 20,50,1000? Не так много.
Итак, ресторанная индустрия представила официантов и менеджеров, которые буферизируют IO на кухне. Приложение сервера базы данных делает нечто примерно аналогичное этому, ограничивая доступ к файлам на диске. Каждый получает то, что хочет, быстрее и намного надежнее, а хранилище данных защищено.