繁体   English   中英

如何在 web 项目连接字符串中正确设置 DataDirectory?

[英]How do I properly set the DataDirectory in a web project connection string?

我的解决方案有一个带有数据库(我的 DAL)的 class lib 项目和一个 web 项目作为 WCF 服务层。

我从 web 项目中添加了对 DAL 项目的引用,当我编译时,我的数据库被复制到 web 项目的 Bin 文件夹中。

Web.config 文件需要连接字符串。 如果我使用:

attachdbfilename=|DataDirectory|\Test.mdf

它在 App_Data 文件夹中查找数据库。

我可以轻松地将数据库的副本放在 App_Data 文件夹中,但是,在开发的这个阶段,我经常更改架构(通过 DAL 中的副本),并且希望项目能够拾取复制到的版本WCF 图层 bin 文件夹。

我知道我可以用这个改变默认的 DataDirecty:

AppDomain.CurrentDomain.SetData("DataDirectory", path);

A)不使用硬编码的绝对路径,是否有更好的方法来获取连接字符串以使用 bin 文件夹?

B) 如果我确实更改了默认 DataDirectory 设置,我如何以编程方式获取对 bin 文件夹的绝对引用?

<Rant> Visual Studio 2010 不应该足够聪明地实现项目类型,而不是从引用的程序集中将 DB 拉到 bin 文件夹中,而是使用 App_Data 文件夹吗? </Rant>

在您的 web 项目中,您应该能够通过执行以下操作找到路径:

string path = Server.MapPath("~/bin/Test.mdf");

然后,您可以在 Global.ascx.cs 中的Application_Start中设置路径

AppDomain.CurrentDomain.SetData("DataDirectory", path);

我意识到这回答了你问题的 B 部分,但不是 A 部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM