Я работаю над настольным приложением winforms, которое должно хранить данные. Я принял действительно плохое решение попробовать встроить базу данных. Я пробовал:
- SQLite
- VistaDB
- SQL Server Compact
В каждом случае мне удавалось генерировать Entity Framework Model поверх базовой схемы, которую я создал. У меня есть событие, которое добавляет данные, которые я использовал для тестирования этих баз данных.
Ну, я продолжал добавлять новую запись, используя EF, и обнаружил, что она на самом деле не вставляет запись. При отладке я проверил объект контекста, чтобы увидеть, что происходит. Оказывается, он говорит, что «базовый поставщик не удалось открыть», или что-то в этом роде. Это не было исключением, просто не вставлял запись.
То же самое произошло со всеми 3 встроенными базами данных - побудив меня понять, что в моей конфигурации должно быть что-то не так.
Ну, я попытался написать несколько базовых SQL-файлов, используя sqlconnection и sqlcommand. На этот раз это исключение. В случае SQL Server Compact теперь написано:
При установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске сервера / указан экземпляр)
Я подумал, что, возможно, проблема в пути в app.Config. Поэтому я изменил строку подключения на:
Обратите внимание, что я упростил путь от всего, что может иметь пробелы, и избегал использования бессмысленного каталога данных, который вызывает проблемы, когда каталог отладки не соответствует предварительно настроенному значению каталога данных. Я использую Windows 7; Я подумал, что, возможно, это проблема доступа - поэтому я попытался запустить VS 2010 в режиме администратора. Неудачно. Я также установил Sql Server Compact SP2, думая, что это может быть ошибкой. Не повезло.
В любом случае, я готова вырвать мои волосы. Я в сжатые сроки для этого и не ожидал провести день, пытаясь выяснить, что происходит.