Web 应用程序中的连接字符串为空

The connection string is empty in Web Application

我有一个 asp.net mvc web 应用程序可以在视图中显示 table。

我还有一个数据访问项目(是一个class库,这个项目的dll会放到上面的MVC项目中,在里面访问数据)。

我的 Web 应用程序不执行数据访问操作。 class 库接受它。它包含 app.config 中的连接字符串,并且 entity framework 数据上下文也在库中。现在该库在控制台应用程序中运行良好。但它在网络应用程序中失败,因为连接字符串为空。

基本在class库中,可以得到连接字符串:

 public class EndpointManagement : IEndpointManagement
 {
    public string GetConnectionString(MyDataContext context)
    {
       return ConfigurationManager.AppSettings["connectionString"];
    }
 }

不确定如何在 Web 应用程序中处理它????

将连接字符串放入 web.config。

我经常看到这种情况 - class 库需要来自主机应用程序 web.config 或 app.config.[=12= 的 <appSetting> 或连接字符串]

这是有问题的,因为对连接字符串的依赖是 "hidden" 在 class 库中。有人引用该库,它失败并出现空引用异常,找到原因的唯一方法是查看该库的源代码。在那里 - 它期望 <appSettings>.

中的值

最好避免在我们的 class 中的任何地方直接依赖 app.config。但如果无济于事,我建议至少抛出一个非常明确的异常 - "Class Xyz requires a connection string..." 并指定它在何处寻找该连接字符串。至少这样消费者就不必猜测和阅读额外的源代码。