public static IEnumerable <SqlParameter> GetSqlParameters(Data.IDataObjectMapping dataObjectMapping, bool ensureExists) { const String ident = "Identity"; const String ensureParamName = "EnsureExists"; List <SqlParameter> parameters = new List <SqlParameter>( ); String parentParameterName = String.Format("{0}{1}", dataObjectMapping.ParentDataObjectNameSingular, ident); String childParameterName = String.Format("{0}{1}", dataObjectMapping.Metadata.DataObjectNameSingular, ident); Dictionary <String, Object> addlParams = dataObjectMapping.GetAdditionalValues( ); parameters.Add(GetSqlParameter(parentParameterName, dataObjectMapping.GetParentIdentity( ))); parameters.Add(GetSqlParameter(childParameterName, dataObjectMapping.GetIdentity( ))); if (addlParams != null) { foreach (String key in addlParams.Keys) { parameters.Add(GetSqlParameter(key, addlParams[key])); } } parameters.Add(GetSqlParameter(ensureParamName, ensureExists)); return(parameters.ToArray( )); }