У нас есть Office Addin, который использует Sql CE с обычным DBConnection к * .sdf в файловой системе ('C: / ... etc ...'). Когда мы запускаем две копии приложения, имеющего Sql CE, дополненный Office Addin (проверяя, что пользователь может сделать по ошибке), база данных Sql CE становится поврежденной, и Office Addin больше не может получить доступ к своим данным.
Кажется, нам не хватает какого-то базового способа избежать кажущейся очевидной проблемы. К настоящему времени все знают, что Sql CE не блокирует свои строки, допуская тот вид повреждения, который может вызвать множественная запись в один и тот же * .sdf.
Возможно, ответ "не делай этого"; и что Sql CE не предназначен для обработки этого случая. Но, безусловно, большинство приложений Sql CE имеют аналогичный риск ошибочного запуска более чем одного процесса и попытки записи в один и тот же * .sdf?
Нам нравится небольшой размер Sql CE, бесплатность и простота интеграции с нашими надстройками. Но мы посмотрели на сравнения Sql Server Express и 2008:
http://download.microsoft.com/download/A/4/7/A47B7B0E-976D-4F49-B15D-F02ADE638EBE/Compact_Express_Comparison.doc