2012-12-29 141 views
1

我有一个使用相同域模型的多个项目的解决方案。因此我创建了一个拥有我的域模型的类库。这个类库还包含在我的项目中使用的其他参数。然后,我在每个项目中添加对类库的引用。 我的类库也有一些从this example派生的存储库类。类库数据库连接字符串

但是,我有一个连接到数据库的问题。我希望我的类库能够连接到数据库,因为我在那里定义了我的数据库上下文类,在那里设置了我的数据库集。对于单个项目,我通常在我的web.config文件中定义我的连接字符串。但类库没有web.config文件。我如何设置连接字符串?

编辑

说,我有我的数据库上下文,mydbcontext,在类库中定义的构造函数

public mydbcontext() : base(ConfigurationManager.ConnectionStrings["DatabaseCon"].ConnectionString) 
    { 

    } 

如果我理解这一点吧,不会是确定刚才设置的名称每个项目的连接字符串为“DatabaseCon”?

+0

程序集可以从其上下文中找到配置文件,例如,从Web应用程序调用的程序集将有权访问web.config。 –

+0

非常感谢。请参阅编辑(如果我理解正确) – jpo

+0

@jpo - 这是一种方法,但现在您的数据访问库不能单独进行测试。 – Oded

回答

0

您应该在使用类库的应用程序的web.config文件中定义连接字符串。作为替代方案,您可以将连接字符串硬编码到类库内的构造函数中 - 非常糟糕的方法,因为您无法从外部修改它 - 例如,您将难以管理不同的连接字符串不同的环境 - 舞台,制作,...

+0

请参阅编辑 – jpo

+0

我已经告诉过你:将连接字符串放入使用此库的Web应用程序的'web.config'中。这是正确的方法。 –

1

你不知道。

将连接字符串作为依赖项传递给需要它的任何类。

你可以封装对它的访问 - 但是你应该在使用这个库的任何程序中实例化它。该程序将在其配置中保存连接字符串。

+0

这是我没有考虑的方法。你有一个例子吗? – jpo

+0

@jpo - 一个例子?你只需传入一个字符串参数即可。 – Oded

+0

明白了,谢谢!很有意义。 – jpo