/// <summary>
        /// Creates a command which will get an entity by its id
        /// </summary>
        public static CommandDefinition MakeFindCommand <TEntity>(
            object id,
            IDbTransaction transaction,
            IDialect dialect,
            int?commandTimeout,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            Ensure.NotNull(id, nameof(id));
            var config = MicroCRUDConfig.Current;

            dialect = dialect ?? config.Dialect;

            var tableSchema = TableSchemaFactory.GetTableSchema(typeof(TEntity), dialect, config.SchemaFactory);
            var sql         = dialect.MakeFindStatement(tableSchema);
            var parameters  = tableSchema.GetPrimaryKeyParameters(id);

            return(MakeCommandDefinition(sql, parameters, transaction, commandTimeout, cancellationToken));
        }