stringo0
stringo0

Reputation: 2760

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.

Upvotes: 4

Views: 8010

Answers (2)

Quintin Robinson
Quintin Robinson

Reputation: 82355

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

Upvotes: 3

Raj
Raj

Reputation: 4435

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

Upvotes: 4

Related Questions