开发者

ASP.net: How to Test a LINQ Query

How can I test a LINQ Query such as the following:

var vUser = (from u in this.dbName.aspnet_Users
         开发者_运维知识库                where u.UserName.Equals(this.wCreateUser.UserName)
                         select u).Single();

I keep getting a null exception for vUser, however I am positive such a user exists.


Use SQL profiler and see what SQL is fired by your code. You can try LinqPad too to run linq query against a DB.


The record would have to exist or the exception would have to be thrown during evaluation of the lambda, otherwise the exception thrown would be to the effect of

The sequence contains no elements.

Are you accessing any properties on the vUser object after the query or is the this.wCreateUser object possibly null?

Edit: for comments..

If the exception is that the sequence contains no elements, the query being generated is not returning a result. I would recommend you examine the query being generated and test it directly against the SQL Server..

You can do this a few ways.

  1. Open SQL Profiler and watch the query being executed.
  2. Attach a TextWriter to the DataContext.Log so you can see the output of the query (example below)..
  3. Use LINQPad as the other answer suggested.

.

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜