Забывая все расплывчатые ответы «это легче», «он меньше», «ему не хватает пунша» или «он легче» (без обид), я думаю, что нужно сосредоточиться на главном различии между ними, когда сталкиваешься с выбором :
- LocalDB вне процесса.
- CE находится в процессе.
Запуск в рамках процесса подачи заявки или нет, имеет много последствий, которые, вероятно, следует изучить в отдельных вопросах.
Наиболее очевидным из них является то, что если вам нужен доступ к базе данных из нескольких приложений с использованием внутрипроцессной СУБД (например, CE), все приложения будут обращаться к файлу базы данных напрямую, используя свое собственное время процессора. Синхронизировать их действительно сложно, и понимание этого помогает понять, почему у CE меньше функций (и многих других).
Также обратите внимание, что хотя можно опасаться, что несколько процессов, выполняющих один и тот же код CE, могут занимать больше памяти, чем необходимо, помните, что операционная система достаточно умна, чтобы делиться страницами из своего кэша страниц между несколькими процессами, так что один действительно не проблема.
LocalDb - это просто способ автоматического управления обычным экземпляром Express для каждого пользователя (он не отличается от SQL Server Express, это одно и то же).