linq to sql duplicate select statements

J

jbot

I've got some pages that use linq to sql. When I look at the
generated sql statements in sql server profiler, I see the same
statements repeated. In the example below (from a linq data source
selected statement), the same sql query is run against the database 3
times at:
oStudent.Count
oStudent(0).lkpstatus.studentstatus
oStudent(0).lkpstatus.statuscategory

Is this the expected behavior? I expected the select to be run only
once. Thanks in advance for help with this.

Private Sub lds_Student_Selected(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.LinqDataSourceStatusEventArgs) Handles
lds_Student.Selected

Dim oStudent As List(Of personal) = CType(e.Result, List(Of
personal))
If oStudent.Count = 1 Then
Session("CurrentStudentStatus") =
oStudent(0).lkpstatus.studentstatus
Session("CurrentStudentStatusCategory") =
oStudent(0).lkpstatus.statuscategory
End If
End Sub

Jim
 
B

bruce barker

unlike an IEnumerable linq query, which walks the objects to produce the
query collection (the walk is done at query time), the linq to sql
query result is an expression parse tree. the parse tree is converted to
sql and excuted when you iterate the query. so you never want to iterate
(foreach) the query results more than once.

if you need to foreach more than once (say multiple binding), convert
the query to a list or array, which can be reused without rerunning the
query.

-- bruce (sqlwork.com)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,065
Latest member
OrderGreenAcreCBD

Latest Threads

Top