/// <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); }
/// <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); }