代码之家  ›  专栏  ›  技术社区  ›  Christian Hagelid

数据库连接字符串存储在哪里?

  •  6
  • Christian Hagelid  · 技术社区  · 16 年前

    我通常将connectionString存储在web.config或Visual Studio项目的应用程序设置中。我目前正在开发的应用程序经常访问数据库,这意味着它每次都会查找connectionstring。我应该将connectionString放在缓存中,还是应该考虑将整个sqlconnection对象存储在缓存中,以消除随时打开和关闭它们的需要?

    更新 :似乎共识是将连接字符串存储在配置文件中,并将缓存留在ado.net的信任手中。

    6 回复  |  直到 15 年前
        1
  •  4
  •   Guy Starbuck    16 年前

    我不会缓存连接对象,这将击败内置的连接池——ADO.NET将自己高效地处理连接(假设您实例化并关闭它们)。

    就连接字符串本身而言,如果从连接中加载它,则不需要缓存它。.NET 2.0框架中的连接管理器对象在首次访问配置时将其加载到内存中,因此不存在到文件系统的重复访问。

        2
  •  3
  •   Giovanni Galbo    16 年前

    web.config已缓存。但即使不是这样,也不要忘记ado.net维护了一个连接池——它不会在每次调用db时打开一个新的连接。

        3
  •  1
  •   Eamon Nerbonne    16 年前

    我通常在应用程序的全局配置对象中缓存连接字符串。这个值是在程序执行开始时加载的,从中存储它——文件、加密文件、配置文件等。ADO.NET非常擅长将连接对象缓存到数据库,因此我不会缓存sqlconnection对象。

        4
  •  0
  •   Matt Hinze    16 年前

    将其保存在配置文件中。使用NHibernate或Linq to SQL等工具提供的强大数据访问策略。

        5
  •  0
  •   Community CDub    8 年前

    据我所知,.config文件的内容仍然保存在内存中…我会给你回电的。

    编辑:什么 HE

        6
  •  0
  •   Yordan Georgiev    15 年前

    可能的解决方案: 为只允许运行一个用于身份验证的存储过程的登录名存储初始加密连接字符串(在web.config或app.config中)。然后从数据库配置表中存储的加密值动态切换登录名。