BLToolkit alternative object mapper that supports stored procedures

I'm not too big of a fan of direct entity mappers, because I still think that SQL queries are fastest and most optimized when written by hand directly on and for the database (using correct joins, groupings, indexes etc).

On my current project I decided to give BLToolkit a try and I'm very pleased with its wrapper around Ado.net and speed so I query database and get strong type C# objects back. I've also written a T4 that generates stored procedure helpers so I don't have to use magic strings when calling stored procedures so all my calls use strong types for parameters.

Basically all my CRUD calls are done via stored procedures, because many of my queries are not simple select statements and especially my creates and updates also return results which is easily done using a stored procedure making just a single call. Anyway...

Downside

The biggest drawback of BLToolkit (I'd like everyone evaluating BLToolkit to know this) aren't its capabilities or speed but its very scarce documentation as well as support or lack thereof. So the biggest problem with this library is doing trial and error to get it working. That's why I also don't want to use too many different parts of it, because the more I use the more problems I have to solve on my own.

Question

What alternatives do I have to BLToolkit that:

  • support use of stored procedures that return whatever entities I provide that are not necessarily the same as DB tables
  • provide a nice object mapper from data reader to objects
  • supports relations (all of them)
  • optional (but desirable) support for multiple result-set results
  • doesn't need any special configuration (I only use data connection string and nothing else)

Basically it should be very lightweight, should basically just have a simple Ado.net wrapper and object mapper.

And the most important requirement: is easy to use, well supported and community uses it.

6
задан PeeHaa 3 November 2013 в 18:00
поделиться