/// <summary>
        /// The persist deleted item.
        /// </summary>
        /// <param name="entity">
        /// The entity.
        /// </param>
        protected override void PersistDeletedItem(IProductVariant entity)
        {
            var productKeys = _productOptionRepository.DeleteAllProductVariantAttributes(entity).ToArray();

            RemoveProductsFromRuntimeCache(productKeys);

            var deletes = GetDeleteClauses();

            foreach (var delete in deletes)
            {
                Database.Execute(delete, new { entity.Key });
            }

            if (!productKeys.Contains(entity.ProductKey))
            {
                RemoveProductsFromRuntimeCache(new[] { entity.ProductKey });
            }
        }