/// <summary>
        /// Returns a command for inserting one object
        /// </summary>
        /// <param name="item">The object to insert</param>
        /// <returns></returns>
        public override IDbCommand GetInsertCommand(object item)
        {
            IEnumerable <DataFieldInfo> info = TypeParser.GetPrimaryKeys(item.GetType());
            IDbCommand cmd = base.GetInsertCommand(item);

            if (info.Count() == 1 && !info.ElementAt(0).SetOnInsert)
            {
                cmd.CommandText = cmd.CommandText.Replace(";", string.Format("; SELECT LAST_INSERT_ID() as {0};", info.First().FieldName));
            }
            return(cmd);
        }
        /// <summary>
        /// Returns a command for inserting one object
        /// </summary>
        /// <param name="item">The object to insert</param>
        /// <returns></returns>
        public override IDbCommand GetInsertCommand(object item)
        {
            IEnumerable <DataFieldInfo> info = TypeParser.GetPrimaryKeys(item.GetType());
            IDbCommand cmd = base.GetInsertCommand(item);

            if (info.Count() == 1)
            {
                cmd.CommandText = cmd.CommandText.Replace(";", string.Format("; SELECT last_insert_rowid() as {0};", info.First().EscapedFieldName));
            }

            return(cmd);
        }