【问题标题】:How do I refer to APP_Data from another project如何从另一个项目中引用 APP_Data
【发布时间】:2023-03-14 22:15:01
【问题描述】:

我有以下项目解决方案:

  • 有一个 ASP.NET MVC Web 我有 SQL 的应用程序 App_Data 目录中的数据库(mdf 文件)。

  • 我有一个类库 有一些迁移 migratordotnet。在我的构建文件中 必须指定SQL在哪里 数据库是这样它可以运行 迁移。

目前在迁移项目中,我使用硬编码路径 来访问连接字符串中的 SQL 数据库。它看起来像这样:

connectionString="Data Source=.\SQLExpress; Integrated Security=true; AttachDbFilename=C:\MySolution\MyMVCProject\App_Data\MyDatabase.mdf"

这不是我想做的。我也不能使用相对路径(例如..\MyMVCPProject\AppData\MyDatabase.mdf,因为 migratordotnet 中使用的 SQL 类无法正确翻译它)但我想使用某种替代路径,就像你会发现的那样在 web 项目中的 Web.Config 中使用 |DataDirectory|,如下所示:

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True"

我该如何做到这一点?我无法在迁移项目中使用该连接字符串。因为|DataDirectory|会去.NET Framework的安装路径,在那里寻找数据库文件。

【问题讨论】:

    标签: .net asp.net connection-string mdf


    【解决方案1】:

    你想要这样的东西(VB .NET 代码):

    connectionString="Data Source=.\SQLExpress; Integrated Security=true; AttachDbFilename=" & Server.MapPath("~\App_Data\MyDatabase.mdf")
    

    Server.MapPath() 将在运行时将您的相对路径转换为完全限定路径。

    【讨论】:

      【解决方案2】:

      您是否考虑过在 SQL Express 中永久附加数据库?这样您就可以在两个项目中使用相同的连接字符串,并且两者都不会绑定到文件系统路径。

      【讨论】:

      • 不。我对这个 SQL Express 很陌生。
      猜你喜欢
      • 1970-01-01
      • 2012-09-08
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2012-07-24
      • 2020-04-27
      • 2011-03-12
      相关资源
      最近更新 更多