我的解决方案有一个带有数据库(我的 DAL)的类库项目,以及一个充当 WCF 服务层的 Web 项目。
我从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 不应该足够智能来实现项目类型,而不是将数据库从引用的程序集中拉到 bin 文件夹中,而是使用 App_Data 文件夹吗?</Rant>
在您的网络项目中,您应该能够通过执行以下操作找到路径:
string path = Server.MapPath("~/bin/Test.mdf");
然后你可以设置路径Application_Start
在你的 Global.ascx.cs 中
AppDomain.CurrentDomain.SetData("DataDirectory", path);
我意识到这回答了你问题的 B 部分,但没有回答 A 部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)