.NET Data Grunt implementation to simplify data access (written for .NET 2 a while a go)