Chris Porter
Chris Porter

Reputation: 2449

linq to sql query using methods

Why does this work ?

var x = from p in db.People let oCount = p.Orders.Count select p;

And not this ?

var x = from p in db.People let oCount = Count(p) select p;

private int Count(DataContext.Order o)
{
  return o.Count;
}

Upvotes: 1

Views: 483

Answers (1)

Jon Skeet
Jon Skeet

Reputation: 1500055

LINQ to SQL "understands" p.Orders.Count, but it can't look inside your method to work out what it means - it could be doing anything as far as LINQ to SQL is concerned.

In your first query, p.Orders.Count is all represented in an expression tree which can be examined programmatically at execution time.

Upvotes: 4

Related Questions