两个.NET项目,一个DB连接字符串?

Jon*_*han 6 .net asp.net-mvc configuration connection-string

我有一个包含两个项目的.NET解决方案:

  • 一个ASP.NET MVC项目,'网站'
  • 一个类库,'模型'

"模型"项目包含Linq-to-SQL数据上下文以及一些扩展数据库对象的部分类.

连接字符串在"网站"项目的web.config中定义.

但是,"Models"项目似乎有自己的app.config,其中数据库连接是单独定义的.

这意味着如果连接字符串发生更改,我将不得不更新这两个项目.

有没有办法可以将连接字符串集中到一个地方,并且两个项目仍然使用它?

Bre*_*uck 4

创建一个与数据上下文相同的分部类,并使用此代码强制使用 web.config 字符串而不是 app.config。将分部类放在类库中与模型相同的位置。

public partial class YourDataContext 
{
    partial void OnCreated()
    {
        ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["PrimaryConnectionString"];

        if (cs != null)
        {
             this.Connection.ConnectionString = cs.ConnectionString;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此问题Preferred Method for connection string in class library
RichardOD 发布了一个链接,指向我认为最能描述我们的问题的链接LINQ To SQL 和 Web.Config ConnectionString Value

  • 但是,既然部分类必须属于同一个程序集,那么这将如何工作呢?我希望“模型”程序集使用“网站”程序集中 web.config 中的连接字符串。 (2认同)