private static void SetupUpdate(IMapping <T> Mapping, IEnumerable <IMapping> ParentMappings) { Contract.Requires <ArgumentNullException>(Mapping != null, "Mapping"); if (!string.IsNullOrEmpty(Mapping.UpdateCommand)) { return; } string ParameterList = ""; string IDProperties = ""; int Count = 0; string Separator = ""; string Splitter = ""; foreach (IProperty Property in Mapping.Properties.Where(x => x is IMap || x is IReference)) { if (!Property.AutoIncrement) { ParameterList += Splitter + Property.FieldName + "=@" + Count; Splitter = ","; ++Count; } } foreach (IProperty Property in Mapping.IDProperties) { IDProperties += Separator + Property.FieldName + "=@" + Count; Separator = " AND "; ++Count; } Mapping.SetUpdateCommand(string.Format(CultureInfo.InvariantCulture, "UPDATE {0} SET {1} WHERE {2}", Mapping.TableName, ParameterList, IDProperties), CommandType.Text); }