I have been on the hunt for an easier ORM tool to help with my day-to-day work. Till now the ones I have tested have fallen short of fulling one of criteria:
We use stored procedures exclusively for our CURD operations, so this is the determining requirement and I do not like compromising having an abstract layer which does not support OracleDbType’s just because it has to work with other DB’s
This need was the main reason I have stayed away from heavy weight ORM’s like NHibernate and Entity Framework
The 2 main micro ORMs I am taking into consideration are Dapper and PetaPoco.
I feel Dapper is more suited for my situation because it meets all of my above requirements and it works in the following scenarios
Getting the result out from an Oracle Stored Procedure with the help of Dapper seemed very easy after just adding a custom implementation of Dapper.SqlMapper.IDynamicParameters
which supports Oracle.DataAccess.Client.OracleDbType
.
Dapper has a nice way to map multiple models to the procedure as shown below
SQL
|
|
CSharp
|
|
You can download the OracleDynamicParameters.cs file from Gist.
According to Dapper’s website and Steven Hollidge Dapper’s performs only next to hand written ADO.NET code. Apart from this Stackoverflow is using Dapper for their ORM needs. Considering their load I am convinced that Dapper is worth a try for our ORM needs as well.