【问题标题】:Where does Visual Studio (2010 Professional) host MDF files?Visual Studio (2010 Professional) 在哪里托管 MDF 文件?
【发布时间】:2011-07-11 14:12:56
【问题描述】:

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

<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 不能?
  • Profiling:我为实体框架创建了一些存储过程,并将它们映射到实体。很高兴看到这些实体是否真正被执行。如何查看使用 SQL Profiler 等工具执行的存储过程?

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

SQL Server 管理工作室:

Visual Studio 服务器资源管理器:

【问题讨论】:

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


    【解决方案1】:

    如您所见,您的连接字符串包含这部分:

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

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

    【讨论】:

    • 我也看到了。那么为什么我不能在 SQL Server Management Studio 中看到它或在 Visual Studio 中针对它运行代码呢?
    • 您不会在 Management Studio 中看到它,因为它是在运行时动态附加的。对于 Visual Studio,您可以使用服务器资源管理器查询 MDF 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2015-08-10
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    相关资源
    最近更新 更多