加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.net:如何测试LINQ查询

发布时间:2020-12-16 09:31:02 所属栏目:asp.Net 来源:网络整理
导读:如何测试LINQ查询,如下所示: var vUser = (from u in this.dbName.aspnet_Users where u.UserName.Equals(this.wCreateUser.UserName) select u).Single(); 我一直得到vUser的null异常,但是我很肯定这样的用户存在. 解决方法 记录必须存在或者在评估lambda
如何测试LINQ查询,如下所示:

var vUser = (from u in this.dbName.aspnet_Users
                         where u.UserName.Equals(this.wCreateUser.UserName)
                         select u).Single();

我一直得到vUser的null异常,但是我很肯定这样的用户存在.

解决方法

记录必须存在或者在评估lambda期间必须抛出异常,否则抛出的异常将是

The sequence contains no elements.

您是在查询后访问vUser对象上的任何属性,还是this.wCreateUser对象可能为null?

编辑:评论..

如果异常是序列不包含元素,则生成的查询不返回结果.我建议您检查生成的查询并直接针对SQL Server进行测试.

你可以通过几种方式做到这一点.

>打开SQL Profiler并观看
正在执行的查询.
>将TextWriter附加到DataContext.Log,以便您可以看到
查询的输出(例如
下面)..
>使用LINQPad作为建议的其他答案.

.

StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
this.dcLAUNCHOnline.Log = writer;
//Execute Query..
//sb.ToString(); //will contain the sql produced by the LINQ Query

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读