我有以下项目解决方案:
有一个 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安装路径并在那里查找数据库文件。
最佳答案
您想要这样的东西(VB .NET 代码):
connectionString="Data Source=.\SQLExpress; Integrated Security=true; AttachDbFilename=" & Server.MapPath("~\App_Data\MyDatabase.mdf")
Server.MapPath() 将在运行时将您的相对路径转换为完全限定路径。
关于.net - 如何从另一个项目引用 APP_Data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380549/