我正在使用LINQ to SQL创建一个winforms应用程序 - 我正在工作站上使用SQL Express实例构建应用程序。项目的最终安装将在适当的SQL Server 2005上。
数据库具有相同的名称,并且所有表都相同,但主机名不同。
我发现让我的应用从一台机器到另一台机器工作的唯一方法是在Visual Studio中重新打开代码,从我的.mdbl中删除所有引用SQL express实例的对象,保存项目,连接到其他服务器,重新拖动所有引用,然后重新构建应用程序以再次发布。
这里的答案建议人们可以简单地修改app.config / web.config文件 - 这对asp.net有效,但这是一个winforms应用程序。使LINQ to SQL应用程序使用新数据库而不必在visual studio中重新打开应用程序的正确方法是什么?
答案 0 :(得分:1)
如果我正确理解您的问题,您只需在app.config / web.config中更改数据库的连接字符串。
编辑,后澄清:您已将连接字符串存储在某处。它们可能位于服务器的app.config中。不过,你从某个地方获得它们,某个地方可能在app.config中。然后使用:)
答案 1 :(得分:1)
一个好的解决方案是向dbml文件本身添加另一个连接。您可以通过右键单击设计图面的字段并选择属性来实现此目的。从那里,您可以添加另一个连接字符串。而不是删除所有内容并重新编译,只需更改字符串并重新编译即可。
但是如果你想获得花哨的灵性,你可以让程序自动检测它是否在本地运行,使用这个简洁的实用程序函数:detect local
然后从那里根据结果设置适当的连接字符串。
答案 2 :(得分:1)
更有用的答案......
app.config在构建时最终为appname.exe.config。
而不是打开Visual Studio并修改app.config,您只需编辑appname.exe.config文件,然后重新启动应用程序。
答案 3 :(得分:0)
我相信您可以将连接信息存储在app.config文件中并从那里检索它。 Here是关于使用LINQ to SQL执行此操作的帖子。将其部署到生产服务器后,您只需编辑XML即可更改数据源。