2010-11-14 148 views
2

昨天,我決定將我的應用程序從LINQ到SQL轉換爲EF4,以充分利用代碼優先功能。我創建了我的POCO,一個DbContext類,實現了新的存儲庫類,一切都很好。實體框架4:Phantom MDF

在稍後的一段時間,我注意到在用於創建SqlExpress MDF文件的文件名EF中存在拼寫錯誤。我將舊的數據庫從其文件夾中移出,清除了我的配置文件中的連接字符串,然後讓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可以找到它,但我不能?

回答

1

這似乎只是EF的CTP版本的問題。 SQL CE文件現在正在顯示。

0

你用什麼來查找文件?你的操作系統是64位的嗎?如果是這樣,那麼如果您使用32位工具查看文件系統,它將顯示虛擬視圖。

+0

Windows資源管理器的文件搜索。我正在運行Windows 7旗艦版32位。 – 2010-11-14 20:33:06

+0

是使用索引進行資源管理器文件搜索還是直接查看文件系統?我不使用它,所以我不知道。我使用Total Commander(http://ghisler.com)進行文件管理任務。 – qbeuek 2010-11-15 13:58:27