Я давно завершил проект, который вызвал этот вопрос, но недавно у меня был другой проект с очень незначительными требованиями к данным, поэтому я потратил еще немного времени на эксперименты с этим.
Я предполагал, что Sql Server Express требует лицензионных сборов для развертывания, но на самом деле это не так. Согласно веб-сайту Microsoft, вы можете использовать его с определенными ограничениями:
- Максимальный размер базы данных: 4 ГБ
- Максимальная используемая память: 1 ГБ
- Максимальное количество используемых процессоров: 1 (полный процесс, а не ядро)
Sql Server Compact - плохая идея для веб-приложений, поскольку для его работы требуется взлом, и он не создан для одновременного доступа к Интернету. Но если ваше приложение может соответствовать скромным ограничениям Sql Server Express, оно работает довольно хорошо. А поскольку он говорит на обычном T-SQL, как и его более крупные братья и сестры, вы можете использовать Linq для SQL вместе с ним.
Я слышал, что Linq к Sql поддержка теперь в багажнике Mono для выпуска 2.6, так L2S»плотно муфта Sql Server, вероятно, будет спорным вопросом в ближайшем будущем. Я либо в конечном итоге перенесу свой код для использования превосходящей реализации Monq в Linq для Sql на выбранную БД, либо пройду другой маршрут полностью (SubSonic улучшился стремительно с тех пор, как я в последний раз его пробовал). Но в настоящее время Sql Server Express является правильным выбором для очень небольших приложений на основе базы данных.