Today I was doing some LINQ to nHibernate and I came to this statement.

Considering that I used a Person class that looks like this.

Public Class Person
  Private _lastName as String
  Private _id as Integer

...

End Class```
And what I wanted was the lowest Id number for all people that were named like me. Because I am sure I will always have the lowest id.

In SQL that would look something like this.

```tsql
Select min(id) from person where person.Lastname = 'baes'```
The first linq statement I came up with was this.

```vbnet
_session.Linq(of Person).Where(Function(x) x.LastName.Equals("baes")).Min(Function(x) x.Id)```
That gave the right result. But it was loading all of the Person objects and then doing the Min function in memory on those Objects.

So I changed it to this.

```vbnet
(From e in _Session.Linq(Of Person) where e.LastName = "baes" select e.Id).Min```
Which did result in the above mentioned select statement.