/// <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); }
/// <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())); }
/// <summary> /// Captura a DAO relacionada com a Model. /// </summary> /// <returns>DAO.</returns> public ISimpleBaseDAO GetDAO() { return(GDAOperations.GetDAO(this)); }