Вчера я решил преобразовать свое приложение из LINQ-to-SQL в EF4, чтобы воспользоваться преимуществами функции «сначала код».Я создал свои POCO, класс DbContext, реализовал новые классы репозиториев, и все было в порядке.
В какой-то момент позже я заметил, что в имени файла EF, использованном для создания файла SqlExpress MDF, была опечатка.Я переместил старую БД из ее папки, очистил строки подключения из моих файлов конфигурации и позволил EF создать новую пустую БД.Он создал файл, добавил строку подключения в мой файл app.config, и приложение работает нормально.Однако, когда я смотрю в папку, указанную в строке подключения, MDF отсутствует.На самом деле, папка даже не существует.Вот строка подключения, которую добавил EF:
<add name="PhotoAlbum.Infrastructure.Properties.Settings.PhotoAlbumConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Src\Visual Studio 2010\Projects\PhotoAlbum\trunk\PhotoAlbum.Web\App_Data\PhotoAlbum.mdf";Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
Видя, что EF решил поместить файл на C: вместо D: (где папка существует, но файл не существует), я изменилстрока подключения к:
<add name="PhotoAlbum.Infrastructure.Properties.Settings.PhotoAlbumConnectionStringg"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename="D:\Src\Visual Studio 2010\Projects\PhotoAlbum\trunk\PhotoAlbum.Web\App_Data\PhotoAlbum.mdf";Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
EF не создала новый файл или не попыталась открыть существующий файл на диске D :.Это, очевидно, не имеет значения для EF, потому что он все еще может получить доступ к этому фантомному файлу MDF.
Я обыскал весь компьютер, и в моей системе нет файла PhotoAlbum.mdf.Куда пропал этот файл?Почему EF может его найти, а я нет?