Visual Studio(2010 Professional)在哪里托管MDF文件?

时间:2011-07-11 14:12:56

标签: sql-server visual-studio visual-studio-2010 entity-framework

我通过实体框架生成了一个数据库。这是连接字符串:

<add name="AnnouncementsContainer" connectionString="metadata=res://*/Models.Announcements.csdl|res://*/Models.Announcements.ssdl|res://*/Models.Announcements.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\Database.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

这使用名为Database.mdf的文件。该应用程序运行正常,但我现在必须处理两个问题:

  • 数据库更新:每当我使用原始sql代码更新数据库时,我必须自己在SQL Server Management Studio中手动托管此文件(然后我将数据库分离并将其余部分留给visual studio)。服务器出现在Visual Studio服务器资源管理器中,但Visual Studio无法连接到它以运行SQL代码。 Visual Studio托管此文件在哪里,以便应用程序可以访问数据库,但IDE不能?
  • 分析:我为实体框架创建了一些存储过程并将它们映射到实体。看看这些实体是否真正被执行真的很高兴。如何查看使用SQL Profiler等工具执行的存储过程?

以下是一些截图,以防我所说的不清楚:

SQL Server Management Studio:

SQL Server Management Studio

Visual Studio Server Explorer:

Visual Studio Server Explorer

1 个答案:

答案 0 :(得分:1)

如您所见,您的connectionstring包含此部分:

data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\Database.mdf;

这意味着它会将Database.mdf中存储的文件|DataDirectory|(默认为Web项目中的App_Data文件夹),并将它以动态方式附加到提供的sqlexpress实例(在本例中为。 \ sqlexpress表示在名为.\的localhost sqlexpress上运行的sqlexpress实例。