nullreference exception



使用Linq到sql和服务器资源管理器,我映射到了一个loginvalidation存储过程。所以我写了以下代码:

ClientReportingDataContext db = new ClientReportingDataContext();
var data = db.ADMIN_LoginValidation(login, password);

它在以下行中抛出一个异常:

public ClientReportingDataContext() : 
        base(global::System.Configuration.ConfigurationManager.ConnectionStrings["FeedsConnectionString"].ConnectionString, mappingSource)

引发异常:

对象引用未设置为对象的实例。

我从一个单元测试类调用这个函数。我无法在web.config中馈送连接。

我把web.config放在单元测试文件夹中,也放在debug和debug/bin下。不确定我错过了什么。

提前谢谢你的建议。

对于单元测试,

ConnectionStrings["FeedsConnectionString"].ConnectionString

不会读取您的web.config文件;它将读取测试运行程序的应用程序配置文件。因此,除非您已将FeedsConnectionString放入测试运行程序的应用程序配置文件中

ConnectionStrings["FeedsConnectionString"]

null,所以

ConnectionStrings["FeedsConnectionString"].ConnectionString

将抛出一个NullReferenceException

这就是为什么测试和应用程序配置文件不能很好地处理的原因。

您应该考虑以下内容:

public ClientReportingDataContext(string connectionString) :
    base(connectionString, mappingSource)

然后在测试中注入连接字符串。

相关内容

  • 没有找到相关文章

最新更新