Exemplo n.º 1
0
        public UpdateQuery <T> Where(T obj)
        {
            List <MemberInfo> members = obj.GetType().GetValueMembers();

            foreach (MemberInfo member in members)
            {
                Type                 memberType      = member.GetUnderlyingType();
                DbFieldAttribute     columnAttribute = member.GetCustomAttribute <DbFieldAttribute>(true);
                WhereIgnoreAttribute whereIgnore     = member.GetCustomAttribute <WhereIgnoreAttribute>(true);

                if (columnAttribute != null && whereIgnore == null)
                {
                    object value = member.GetValue(obj);

                    if (columnAttribute.ValidFormatter(memberType))
                    {
                        value = columnAttribute.FormatGetValue(memberType, value);
                    }

                    Where(columnAttribute.Name, value);
                }
            }

            return(this);
        }
Exemplo n.º 2
0
        internal DeleteQuery(QueryBuilder builder, T obj) : base(builder)
        {
            // Get table name
            DbTableAttribute tableAttribute = obj.GetType()
                                              .GetCustomAttributes <DbTableAttribute>(true)
                                              .FirstOrDefault();

            if (tableAttribute != null)
            {
                From(tableAttribute.Name);
            }
            else
            {
                From(obj.GetType().Name);
            }

            List <MemberInfo> members = obj.GetType().GetValueMembers();

            foreach (MemberInfo member in members)
            {
                Type memberType = member.GetUnderlyingType();

                DbFieldAttribute     columnAttribute = member.GetCustomAttribute <DbFieldAttribute>(true);
                WhereIgnoreAttribute whereIgnore     = member.GetCustomAttribute <WhereIgnoreAttribute>(true);

                if (columnAttribute != null && whereIgnore == null)
                {
                    object value = member.GetValue(obj);

                    if (columnAttribute.ValidFormatter(memberType))
                    {
                        value = columnAttribute.FormatGetValue(memberType, value);
                    }

                    Where(columnAttribute.Name, value);
                }
            }
        }