0

我有 2 个 C# .net 应用程序,例如 1。一个数据访问应用程序,它有一个实体框架工作数据模型来连接到数据库。2.一个Web应用程序,它将包含第一个应用程序的dll并通过从dll调用函数来获取数据

我需要从第二个应用程序 web 配置文件中获取连接字符串并将其传递给第一个应用程序。在第一个应用程序中,应根据来自第二个应用程序的连接字符串检索数据。

4

2 回答 2

1

有很多方法可以实现这一目标。一个(我不会在这里介绍)是通过某种引导加载程序 - 您可以通过存储库的构造函数(或数据上下文)传递一个连接字符串,或者您可以构造一个SqlConnectionStringBuilder这里有一些进一步的细节)。

如果您想保持简单,请将连接字符串存储在web.configWeb 应用程序的文件中,将键设置为对象的名称。因此,假设您扩展DbContext了一个名为MyDbContext. 在 web.config 中,您将拥有以下内容作为连接字符串

<add name="MyDbContext" connectionString="<conn string>" providerName="System.Data.SqlClient" />

实体框架将自动使用此连接字符串,因为键与您的上下文相同。

于 2013-04-15T09:05:39.633 回答
0

如果 dll 要充当数据访问层,它应该检索数据并将其传递给 Web 应用程序。不是反过来。

如果您仍然选择这样做,则必须创建一个函数,从 dll 的 app.config 中检索连接字符串并将其传递给 Web 应用程序。

要访问程序集配置文件中的连接字符串,请使用 ConfigurationManager 类(与您将在 Web 应用程序中使用的 WebConfigurationManager 类相对)。它使用相同的调用以相同的方式访问配置的元素,仅用于通用配置读取/写入。

编辑:正如@PaulAldred-Bann 所提到的,如果网络应用程序也需要连接字符串“应该”存储在网络应用程序配置文件中。程序集仍然可以访问它(您只需将设置从 app.config 移动到 web.config。可以从那里访问它的原因是,程序集在被引用时代表调用者(在在这种情况下,网络应用程序)。

于 2013-04-15T09:06:19.717 回答