С кодом этот метод проходит через:
public static IEnumerable<TResult> ExecuteSqlStringAccessor<TResult>(this Database database, string sqlString)
where TResult : new()
{
return CreateSqlStringAccessor<TResult>(database, sqlString).Execute();
}
, затем
IRowMapper<TResult> defaultRowMapper = MapBuilder<TResult>.BuildAllProperties();
, который проходит через
return MapAllProperties().Build();
что:
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;
}
так что нет;Я не вижу доказательств какого-либо кеширования там.Вы можете добавить некоторые, или вы можете использовать купольные устройства, которые уже выполняют кэширование материализатора и параметризации (* кашель * dapper-dot-net * кашель *)