In May of 2009 I discovered some significant performance problems that I blogged about. In summary, I had tracked it down to the issue of LINQ2SQ having to create a full expression tree on every instantiation of a LINQ2SQL query. I’m not a compiler write kind of guy but do respect the complexity of that and doing things like building expression trees, but still this really sucked. Using the compile syntax in LINQ2SQL is very awkward, and IMHO takes all the fun out of using LINQ2SQL. If you don’t remember my post, here is the graph showing the evil happening.
So, what is a Microsoft MVP to do? I complained to everyone at Microsoft I knew. I made this my mission for about a year. I was told time after time that the problem was hugely complicated and no one was working on making it any faster. I just could not believe it because I felt this was such a barrier to success to LINQ2SQL type technology (now Entity Framework really) that Microsoft just could not ignore my findings. I was actually surprised that I was the only one screaming about this.
Well, quietly, Microsoft has announced that in .Net Framework 4.5, Entity Framework will include “Auto-Compiled LINQ Queries”. This is awesome! When it comes out, I’ll be testing and it giving feedback.
For now, I’m a very happy camper.