【问题标题】:why use multiple connection strings in asp.net mvc for just one database?为什么在 asp.net mvc 中只为一个数据库使用多个连接字符串?
【发布时间】:2016-10-28 15:34:37
【问题描述】:

我正在使用一个通过 conn 字符串连接到项目的数据库。 Asp.Net 模板还为我提供了用户和身份信息的 conn 字符串。所以我将 conn 字符串指向我需要使用的同一个数据库。因此,一个数据库将用于两个 conn 字符串,用户表将生成到我已经拥有的数据库中。 在这种情况下使用 2 个不同的 conn 字符串,而这 2 个指向同一个数据库是一个好方法吗?只制作 1 个 conn 字符串会更好吗?或者我可以选择做我想做的事吗?

【问题讨论】:

  • 搜索Bounded Context概念。
  • @qbik 所以在你的链接中,ProductCustomer 是两个上下文之间共享的同一个类,或者你必须在不同的命名空间中复制同一个命名类?

标签: c# sql-server asp.net-mvc connection-string


【解决方案1】:

默认情况下,模板会创建一个localDB,连接字符串就是为此而生的。如果您已经启动并运行了 SQL Server 实例,那么您可以提及并使用它。您不需要默认值。

顺便说一句,人们通常会为不同的环境使用多个连接字符串,例如DEVTESTUAT 等,因为他们将拥有/指向不同的数据库。

【讨论】:

  • 我和一个朋友一起工作,他保留给定的 conn 字符串(为用户)并为其自己的数据库添加一个 conn 字符串,所以他使用指向同一个数据库的 2 个 conn 字符串,来自相同的应用程序。我亲自删除了 Asp.Net 为我生成的 conn 字符串,所以我只使用了 1 个 conn 字符串。所以我想知道我做错了还是两种方法都可以
  • @Arianit,这是个人意见/选择,但我不会保留两个指向同一个数据库的连接字符串。对我来说可能没问题,但明天如果有人必须在那个应用程序上工作,他可能会感到困惑。
  • 我们意见相同.. 感谢您的回答和意见
  • 这篇文章描述了什么时候使用多个conn字符串比较好。 martinfowler.com/bliki/BoundedContext.html 但是对于这个项目,我只需要 1 个 conn 字符串就可以了
【解决方案2】:

这取决于连接字符串在语义上是否相同。他们是否使用相同的凭据或其他可能影响行为的标志?您可能希望对哪些用户可以访问哪个表进行细粒度控制。

如果两个字符串在语义上是相等的,最好让它们相同,这样只创建一个连接池(假设两个字符串在同一个应用程序中使用)。

【讨论】:

  • 两个字符串在同一个应用程序中使用,用户控制级别将在应用程序中授予。因此,如果 X 用户想要访问 Y 表,应用程序将根据用户角色处理他是否有权访问(所以我不会处理声明)。
猜你喜欢
  • 2021-01-28
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多