Most of you probably know that the Entity Framework architects made a very conscious decision to make all trips to the database explicit.

The result is that this:

Person mother = person.Mother;

will return null, even if the person has a Mother, unless you either eager load (using Include) or explicitly load using Reference.Load();

i.e.

person.MotherReference.Load();
Person mother = person.Mother;

Still there are a lot of people out there who want true Lazy Loading. Which is possible but not easy today.

In steps my crazy colleague Jarek.

Jarek has put together a very interesting project that uses the EF's custom entity interfaces (i.e. IPoco) and some pretty cool magic to do lazyloading... among other things.

Do you think I think you should look at it?

If not, then just to be clear: take a look at this.