Esempio n. 1
0
        /// <summary>
        /// Carrega os dados da tabela filha tem como base os relacionamento entre ela e a atual model, que s�o
        /// identificados pelo atributos <see cref="PersistenceForeignKeyAttribute"/>.
        /// </summary>
        /// <typeparam name="ClassChild">Tipo da classe que representa a tabela filha.</typeparam>
        /// <param name="parentObj">Objeto contendo as informa��es para fazer o relacionamento.</param>
        /// <param name="groupOfRelationship">Nome do grupo de relacionamento.</param>
        /// <param name="sortExpression">Informa��o sobre o propriedade a ser ordenada.</param>
        /// <param name="paging">Informa��es sobre a pagina��o do resultado.</param>
        /// <returns>Lista tipada do tipo da classe que representa a tabela filha.</returns>
        public GDAList <ClassChild> LoadDataForeignKeyParentToChild <ClassChild>(Model parentObj, string groupOfRelationship, InfoSortExpression sortExpression, InfoPaging paging) where ClassChild : new()
        {
            IBaseDAO <ClassChild> dao = GDAOperations.GetDAO <ClassChild>();
            List <GDAParameter>   parameters;
            string sql;

            MakeSqlForeignKeyParentToChild <ClassChild>(parentObj, groupOfRelationship, dao, out sql, out parameters, UserProvider);
            MethodInfo mi  = dao.GetType().GetMethod("GetSqlData", GDA.Common.Helper.ReflectionFlags.AllCriteria);
            object     ret = null;

            try
            {
                ret = mi.Invoke(dao, new object[] {
                    sql,
                    parameters,
                    sortExpression,
                    paging
                });
            }
            catch (Exception ex)
            {
                throw new GDAException(ex.InnerException);
            }
            return((GDAList <ClassChild>)ret);
        }
Esempio n. 2
0
        /// <summary>
        /// Captura a quantidade de linhas que da tabela filha tem, se baseado no relacionamento com a atual model.
        /// </summary>
        /// <typeparam name="ClassChild">Tipo da classe que representa a tabela filha.</typeparam>
        /// <param name="parentObj">Objeto contendo as informa��es para fazer o relacionamento.</param>
        /// <param name="groupOfRelationship">Nome do grupo de relacionamento.</param>
        /// <returns>Quantidade de linhas encontradas.</returns>
        public int CountRowForeignKeyParentToChild <ClassChild>(Model parentObj, string groupOfRelationship) where ClassChild : new()
        {
            IBaseDAO <ClassChild> dao = GDAOperations.GetDAO <ClassChild>();
            List <GDAParameter>   parameters;
            string sql;

            MakeSqlForeignKeyParentToChild <ClassChild>(parentObj, groupOfRelationship, dao, out sql, out parameters, UserProvider);
            sql = sql.Replace("SELECT *", "SELECT COUNT(*)");
            return(ExecuteSqlQueryCount(sql, parameters.ToArray()));
        }
Esempio n. 3
0
 /// <summary>
 /// Captura a DAO relacionada com a Model.
 /// </summary>
 /// <returns>DAO.</returns>
 public ISimpleBaseDAO GetDAO()
 {
     return(GDAOperations.GetDAO(this));
 }