Beispiel #1
0
        /// <summary>
        /// Obtiene el atributo de entidad mapeado como Primary Key
        /// </summary>
        /// <typeparam name="T">
        /// Tipo de clase de entidad que será tratada
        /// </typeparam>
        /// <param name="eEntidad">
        /// Instancia de entidad de la que obtendremos la primary key (objeto)
        /// </param>
        /// <returns></returns>
        public static AtributoEntidad GetPrimaryKey <T>(T eEntidad)
        {
            try
            {
                var oType         = typeof(T);
                var arPropiedades = oType.GetProperties();

                AtributoEntidad oAtributo = null;
                foreach (var oPropiedad in arPropiedades)
                {
                    var arAttributes   = oPropiedad.GetCustomAttributes(false);
                    var oColumnMapping = arAttributes.FirstOrDefault(a => a.GetType() == typeof(BaseEntidad.PrimaryKeyAttribute));
                    if (oColumnMapping != null)
                    {
                        oAtributo         = new AtributoEntidad();
                        oAtributo.sNombre = oPropiedad.Name;
                        oAtributo.oTipo   = TipoColumna.PrimaryKey;
                        if (eEntidad != null)
                        {
                            oAtributo.oValor = oPropiedad.GetValue(eEntidad);
                        }
                    }
                }
                return(oAtributo);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #2
0
        /// <summary>
        ///     Obtiene la lista de los atributos (columnas) de una entidad
        /// </summary>
        /// <typeparam name="T">
        ///     Clase de entidad que será mapeada
        /// </typeparam>
        /// <param name="eEntidad">
        ///     Instancia de entidad que será tratada (objeto)
        /// </param>
        /// <returns></returns>
        public static List <AtributoEntidad> GetAtributosMapeados <T>(T eEntidad)
        {
            try
            {
                var lstAtributos = new List <AtributoEntidad>();                     // Lista de columnas mapeadas en entidad
                var type         = typeof(T);
                var propiedades  = type.GetProperties();

                foreach (var propiedad in propiedades)
                {
                    var attributes     = propiedad.GetCustomAttributes(false);
                    var columnaMapeada = attributes.FirstOrDefault(a => a.GetType() == typeof(BaseEntidad.PrimaryKeyAttribute) || a.GetType() == typeof(BaseEntidad.ForeignKeyAttribute) || a.GetType() == typeof(BaseEntidad.FieldAttribute));
                    if (columnaMapeada != null)
                    {
                        var atributo = new AtributoEntidad();

                        // Seteamos nombre de atributo
                        atributo.sNombre = propiedad.Name;

                        // Seteamos valor de columna
                        if (eEntidad != null)
                        {
                            atributo.oValor = propiedad.GetValue(eEntidad);
                        }

                        // Seteamos tipo de columna
                        if (columnaMapeada is BaseEntidad.PrimaryKeyAttribute)
                        {
                            atributo.oTipo = TipoColumna.PrimaryKey;
                        }
                        else if (columnaMapeada is BaseEntidad.ForeignKeyAttribute)
                        {
                            atributo.oTipo = TipoColumna.ForeignKey;
                        }
                        else
                        {
                            atributo.oTipo = TipoColumna.Field;
                        }

                        // Agregamos columna a lista
                        lstAtributos.Add(atributo);
                    }
                }
                return(lstAtributos);
            }
            catch (Exception)
            {
                throw;
            }
        }