gpt4 book ai didi

c# - 如何在 Web 项目连接字符串中正确设置 DataDirectory?

转载 作者:行者123 更新时间:2023-11-30 12:51:34 24 4
gpt4 key购买 nike

我的解决方案有一个带有数据库的类库项目(我的 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");

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

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

我知道这回答了你问题的 B 部分而不是 A 部分。

关于c# - 如何在 Web 项目连接字符串中正确设置 DataDirectory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6682940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com