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.