예제 #1
0
        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( ));
        }