private TEntity CreateEntityFromValues <TEntity>(IDictionary <string, object> values)
{
var tableInfo = metaDataStore.GetTableInfoFor <TEntity>();
var cachedEntity = sessionLevelCache.TryToFind(typeof(TEntity), values[tableInfo.PrimaryKey.Name]);
if (cachedEntity != null)
{
return((TEntity)cachedEntity);
}
var entity = Activator.CreateInstance <TEntity>();
Hydrate(tableInfo, entity, values);
sessionLevelCache.Store(typeof(TEntity), values[tableInfo.PrimaryKey.Name], entity);
return(entity);
}