Пример #1
0
        private static void FillSqlClauseBuilder <T>(
            SqlClauseBuilderIUW builder,
            T graph,
            ORMappingItemCollection mapping,
            ClauseBindingFlags bindingFlags,
            DoSqlClauseBuilderWithParams <T> builderDelegate,
            params string[] ignorProperties)
        {
            ExceptionHelper.FalseThrow <ArgumentNullException>(graph != null, "graph");

            foreach (ORMappingItem item in mapping)
            {
                if (Array.Exists <string>(ignorProperties,
                                          delegate(string target)
                {
                    return(string.Compare(target, item.PropertyName, true) == 0);
                }) == false)
                {
                    if ((item.BindingFlags & bindingFlags) != ClauseBindingFlags.None)
                    {
                        builderDelegate(builder, item, graph);
                    }
                }
            }
        }
Пример #2
0
        private static DbParameter DoInsertUpdateSqlWithParamBuilder <T>(SqlClauseBuilderIUW builder, ORMappingItem item, T graph)
        {
            DbParameter param = TSqlBuilder.Instance.CreateDbParameter();

            if (item.IsIdentity == false)
            {
                object data = GetValueFromObject(item, graph);

                if ((data == null || data == DBNull.Value || (data != null && data.Equals(TypeCreator.GetTypeDefaultValue(data.GetType())))) &&
                    string.IsNullOrEmpty(item.DefaultExpression) == false)
                {
                    builder.AppendItem(item.DataFieldName, item.DefaultExpression, SqlClauseBuilderBase.EqualTo, true);
                }
                else
                {
                    builder.AppendItem(item.DataFieldName, data);
                }
            }

            return(param);
        }