Entity framework 4 实体框架4:虚拟MDF
昨天,我决定将我的应用程序从LINQ转换为SQL再转换为EF4,以利用代码优先的特性。我创建了我的POCO,一个DbContext类,实现了新的存储库类,一切都很好 后来,我注意到用于创建SqlExpress MDF文件的文件名EF中有一个输入错误。我将旧数据库移出文件夹,清除配置文件中的连接字符串,并让EF创建一个新的空数据库。它创建了文件,向我的app.config文件添加了一个连接字符串,应用程序运行正常。但是,当我查看连接字符串中指定的文件夹时,没有MDF。事实上,这个文件夹根本不存在。以下是EF添加的连接字符串:Entity framework 4 实体框架4:虚拟MDF,entity-framework-4,Entity Framework 4,昨天,我决定将我的应用程序从LINQ转换为SQL再转换为EF4,以利用代码优先的特性。我创建了我的POCO,一个DbContext类,实现了新的存储库类,一切都很好 后来,我注意到用于创建SqlExpress MDF文件的文件名EF中有一个输入错误。我将旧数据库移出文件夹,清除配置文件中的连接字符串,并让EF创建一个新的空数据库。它创建了文件,向我的app.config文件添加了一个连接字符串,应用程序运行正常。但是,当我查看连接字符串中指定的文件夹时,没有MDF。事实上,这个文件夹根本不存在。
<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能找到它,但我找不到?你用什么来找到这个文件?您的操作系统是64位的吗?如果是,那么如果您使用32位工具查看文件系统,它将显示文件系统的虚拟视图。这似乎只是EF的CTP版本的问题。SQL CE文件现在显示。Windows资源管理器的文件搜索。我正在运行Windows 7 Ultimate 32位。资源管理器文件搜索是使用索引,还是直接查看文件系统?我不使用它,所以我不知道。我使用Total Commander()执行文件管理任务。