2010-11-14 121 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