2017-06-21 93 views
-2

我在ASP.NET和C#中真的很新,所以请耐心等待。我的机器上的开发环境

我开发了一个应用程序。我可以完全访问生产数据库。

由于现在我只使用我的表格,但现在我需要使用生产数据的表格。

我创建了一个新的数据库,并在Web.config文件中添加了一个新的连接字符串。

所以生产的连接字符串名称是:

Prod: myconnectiond 
Dev: devconnection 

我的目标是当我开发使用devconnection。

我已经把它该到我的数据库连接方法:

if (Environment.MachineName.ToLower() == "mymachine" && connectionName == "myconnection") { 
    connectionName = "devconnection"; 
} 

它是一个很好的做法,还是存在比较好?

+0

如何将软件发布到生产环境? – spender

+0

它适合你吗?那很好。 – mason

+0

@spender这就是为什么我问,因为我不知道。我是我公司的新手,现在我正在学习C#和ASP.NET。那些现在不在这里的人,但我想现在就工作。 – vaso123

回答

0

我会推荐在你的代码中使用#IF预处理器,基本上它会像这样工作。

string ConnectionName = string.Empty; 
#if DEBUG 
ConnectionName = "devconnection"; 
#elif RELEASE 
ConnectionName = "myconnectiond"; 
#endif 

这是什么会做的是当你有你的构建配置设置为调试(或开发),它会编译代码,就好像它是这样的:

string ConnectionName = string.Empty; 
ConnectionName = "devconnection"; 

而当你把它设置为它释放将编译如下:

string ConnectionName = string.Empty; 
ConnectionName = "myconnectiond"; 

所有您无需更改除构建配置的任何其他。

你可以在这里找到更多的信息:#if (C# Reference)

+0

这是一个很好的解决方案。问题在于,Web配置仅用于构建,而不是在开发时。 – vaso123

2

在Visual Studio的最新的版本,可以根据构建的配置来改变你的web.config配置。

当创建一个web.config,你会看到两个文件:

  • Web.Debug.Config
  • Web.Release.Config

更改连接字符串在调试配置文件中指向开发数据库并释放配置到生产数据库。

+0

什么是不明确的,如果我将它放在调试,然后推送给GIT,PM部署它会发生什么?难道不是在这种情况下无意中使用了开发数据库? – vaso123

+0

就你的情况而言,当PM部署时它将使用Production db。 –