Entity Framework 4: фантомный МДФ - PullRequest
2 голосов
/ 14 ноября 2010

Вчера я решил преобразовать свое приложение из 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=&quot;C:\Src\Visual Studio 2010\Projects\PhotoAlbum\trunk\PhotoAlbum.Web\App_Data\PhotoAlbum.mdf&quot;;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=&quot;D:\Src\Visual Studio 2010\Projects\PhotoAlbum\trunk\PhotoAlbum.Web\App_Data\PhotoAlbum.mdf&quot;;Integrated Security=True;User Instance=True"
            providerName="System.Data.SqlClient" />

EF не создала новый файл или не попыталась открыть существующий файл на диске D :.Это, очевидно, не имеет значения для EF, потому что он все еще может получить доступ к этому фантомному файлу MDF.

Я обыскал весь компьютер, и в моей системе нет файла PhotoAlbum.mdf.Куда пропал этот файл?Почему EF может его найти, а я нет?

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Это, похоже, проблема только в CTP-версии EF.Файлы SQL CE отображаются сейчас.

0 голосов
/ 14 ноября 2010

Что вы использовали, чтобы найти файл?Ваша операционная система 64-битная?Если это так, то если вы используете 32-битный инструмент для просмотра файловой системы, он покажет вам виртуальный вид.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...