【问题标题】:create connection string for new database为新数据库创建连接字符串
【发布时间】:2015-11-05 06:23:40
【问题描述】:

我有两个连接字符串。一台用于我的本地测试机器,一台用于我的生产服务器。最上面的是我当前的机器,注释掉的行是我的生产服务器的行。由于还没有数据库,我是省略密码部分还是输入我希望它创建的密码?

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=helpdesk;Integrated Security=True" providerName="System.Data.SqlClient" />
    <!--<add name="HelpDesk" connectionString="Server=SQL01;Database=HelpDesk;User Id=;Password=" providerName="System.Data.SqlClient" />-->
  </connectionStrings>

我正在使用实体代码优先迁移来创建数据库,那么我将如何获取它来创建密码?还是我需要在 SQL Server 中完成该部分?

【问题讨论】:

  • 对不起,我忘了粘贴连接字符串。哈哈,我现在就这样做。
  • @teovankot,现在修改了原始问题以包含连接字符串。

标签: asp.net-mvc connection-string


【解决方案1】:

我的建议是保留它的注释,但切断连接字符串,这样您就无法从中创建连接。

add name="HelpDesk" connectionString="... add connection string when required ..."

类似的东西。这样,如果您忘记需要添加数据(或者在您的情况下,只需添加密码),那么您将在尝试使用此连接字符串创建连接时抛出异常。

在您的情况下,如果您只是“猜测”密码,则可能不是您将使用的用户名和/或密码,然后由于登录失败,故障排除可能会变得有些棘手。

实际数据源存在(即数据库和连接到它的凭据)之前,我并不认为需要完全填充HelpDesk 连接字符串。

另外,无需将配置中的连接字符串注释掉。只需使用预处理器来确定应该使用哪个连接字符串,具体取决于它是否是调试版本:

#if DEBUG
            _connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
#else
            _connectionString = ConfigurationManager.ConnectionStrings["HelpDesk"].ConnectionString;
#endif

编辑:您的连接字符串应该在 EF 创建它之前就在其中。 EF 将创建数据库并为您处理。因此,省略这一点并没有真正的意义。至于连接字符串的user id,这将是您在 SQL Server 实例上的登录名,因此凭据通常存储在数据库的外部

话虽如此,EF 将创建initial catalog 指定的数据库,而您的user id 和密码参数将特定于实例上的登录,因此您应该能够创建该服务器主体并固化连接字符串。

【讨论】:

  • 托马斯,谢谢你的回答。但是,我想我并不清楚。我正在使用实体代码首先迁移 - 所以我的项目将创建数据库。我也会把它放在我原来的问题中。
  • @djblois 查看我的编辑。仍然不是问题。保持连接字符串未注释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多