Ответ 1
Эта статья должна ответить на ваш вопрос.
В разделе конфигурации вы можете указать соединение по умолчанию factory, который должен использовать код First для поиска базы данных, используемой для контекст. Соединение по умолчанию factory используется только тогда, когда нет строка подключения добавлена в файл конфигурации для контекст.
Когда вы установили пакет EF NuGet, соединение по умолчанию factoryбыла зарегистрирована, которая указывает на SQL Express или LocalDb, в зависимости от на котором вы установили.
Судя по вашей конфигурации, кажется, вы используете соединение с LocalDb, которое является минималистской версией SQL, используемой для разработки.
Вы можете попытаться использовать встроенный проводник сервера в Visual Studio для доступа к этой базе данных, но, как вы писали, он может не отображаться "из коробки". Таким образом, вам может понадобиться создать новое подключение в обозревателе сервера, чтобы просмотреть содержимое.
EDIT:
Мне пришлось запустить VMware Windows 8 с VS2012, чтобы ответить на вопрос "где на диске находится база данных".
LocalDb
создает файлы mdf
и ldf
в C:\Users\<USER NAME>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.0
Что касается подключения к нему через браузер сервера, я смог просмотреть базу данных, введя (LocalDb)\v11.0
в качестве адреса сервера, а затем выбрав базу данных с именем, подобным имени контекста данных из вашего приложения (с пространством имен).
Вся эта информация я нашел здесь.
Обратите внимание, что в коде, который вы отправили здесь, кажется, что вы восстанавливаете базу данных в начале приложения, используя Database.SetInitializer(new DropCreateDatabaseAlways<ImageContext>());
, Конечно, это хорошо при первом запуске приложения (поэтому база данных фактически создается), но последующие повторы будут очищать данные и начинаться со свежего сланца. После того, как я подключился к базе данных с помощью Server Explorer, я фактически не смог выполнить этот код, поскольку "база данных уже использовалась". Вероятно, вам придется пересмотреть вопрос о сохранении соединения, открытого в браузере сервера, или изменить эту строку кода.