昨天,我決定將我的應用程序從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="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可以找到它,但我不能?
Windows資源管理器的文件搜索。我正在運行Windows 7旗艦版32位。 – 2010-11-14 20:33:06
是使用索引進行資源管理器文件搜索還是直接查看文件系統?我不使用它,所以我不知道。我使用Total Commander(http://ghisler.com)進行文件管理任務。 – qbeuek 2010-11-15 13:58:27