Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 4 实体框架4:虚拟MDF_Entity Framework 4 - Fatal编程技术网

Entity framework 4 实体框架4:虚拟MDF

Entity framework 4 实体框架4:虚拟MDF,entity-framework-4,Entity Framework 4,昨天,我决定将我的应用程序从LINQ转换为SQL再转换为EF4,以利用代码优先的特性。我创建了我的POCO,一个DbContext类,实现了新的存储库类,一切都很好 后来,我注意到用于创建SqlExpress MDF文件的文件名EF中有一个输入错误。我将旧数据库移出文件夹,清除配置文件中的连接字符串,并让EF创建一个新的空数据库。它创建了文件,向我的app.config文件添加了一个连接字符串,应用程序运行正常。但是,当我查看连接字符串中指定的文件夹时,没有MDF。事实上,这个文件夹根本不存在。

昨天,我决定将我的应用程序从LINQ转换为SQL再转换为EF4,以利用代码优先的特性。我创建了我的POCO,一个DbContext类,实现了新的存储库类,一切都很好

后来,我注意到用于创建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能找到它,但我找不到?

你用什么来找到这个文件?您的操作系统是64位的吗?如果是,那么如果您使用32位工具查看文件系统,它将显示文件系统的虚拟视图。

这似乎只是EF的CTP版本的问题。SQL CE文件现在显示。

Windows资源管理器的文件搜索。我正在运行Windows 7 Ultimate 32位。资源管理器文件搜索是使用索引,还是直接查看文件系统?我不使用它,所以我不知道。我使用Total Commander()执行文件管理任务。