Example #1
0
        /// <summary>
        ///     Adds the shallow clone.
        /// </summary>
        /// <param name="sourceId">The source identifier.</param>
        /// <param name="destinationId">The destination identifier.</param>
        public void AddShallowClone(long sourceId, long destinationId)
        {
            DataTable dt;

            if (!EntityClones.TryGetValue(CloneOption.Shallow, out dt))
            {
                dt = TableValuedParameter.Create(TableValuedParameterType.EntityMap);
                EntityClones[CloneOption.Shallow] = dt;
            }

            dt.Rows.Add(sourceId, destinationId);
        }
Example #2
0
        /// <summary>
        ///     Adds any entity clone parameters.
        /// </summary>
        /// <param name="command">The command.</param>
        private bool AddEntityClonesParameters(IDbCommand command)
        {
            bool haveClones = false;

            if (EntityClones.Count > 0)
            {
                DataTable dt;
                if (EntityClones.TryGetValue(CloneOption.Shallow, out dt))
                {
                    command.AddTableValuedParameter("@shallow", dt);
                    haveClones = true;
                }

                if (EntityClones.TryGetValue(CloneOption.Deep, out dt))
                {
                    command.AddTableValuedParameter("@deep", dt);
                    haveClones = true;
                }
            }

            return(haveClones);
        }