LinqDataSource Select N+1

David Hayden over at CodeBetter has a post on performance and LinqDataSource.

The problem that David Hayden describes so well is known as Select N+1. Those of us using NHibernate have been dealing with this since we started using our favorite ORM. There has been much written on this problem.

It is my belief that this is going to be the biggest problem developers are faced with when using any of the LINQ to database technologies. Entities, DataSets, or SQL, it doesn’t matter which LINQ to database you choose. You will have to understand what is going on under the hood a little. David is using the design time features of the LinqDataSource control and he solves the N+1 problem by limiting his functionality.

Not that it solves any of these problems, but MonoRail just keeps looking better. MR doesn’t have a LinqDataSource, but enabling edits and deletes is no different and treated at a different layer in your typical MonoRail w/ ActiveRecord application. These are different concerns. MonoRail w/ ActiveRecord does the right thing and treats them as separate.

Thank you Castle Project!