From the code, this method goes through:
public static IEnumerable<TResult> ExecuteSqlStringAccessor<TResult>(this Database database, string sqlString) where TResult : new() { return CreateSqlStringAccessor<TResult>(database, sqlString).Execute(); }
then to
IRowMapper<TResult> defaultRowMapper = MapBuilder<TResult>.BuildAllProperties();
which goes through
return MapAllProperties().Build();
which the:
public static IMapBuilderContext<TResult> MapAllProperties() { IMapBuilderContext<TResult> context = new MapBuilderContext(); var properties = from property in typeof(TResult).GetProperties(BindingFlags.Instance | BindingFlags.Public) where IsAutoMappableProperty(property) select property; foreach (var property in properties) { context = context.MapByName(property); } return context; }
so no; I do not see any evidence of any caching. You could add some of them, or you could use something that already caches materializer and parameterization (* cough * dapper-dot-net * cough *)
source share