public void OrdenaTablas() { ListlistaOrdenada = new List (); while (this.lTable.Count > 0) {//mientras haya elementos ColocaTablaEnOrden(this.lTable, this.lTable[0], listaOrdenada); } foreach (var item in listaOrdenada) { lTable.Add(item); } } private void ColocaTablaEnOrden(List listaOriginal, CTableM cTableM, List listaOrdenada) { listaOriginal.Remove(cTableM); foreach (CRelationM relacion in cTableM.lRelation) { string NombreTablaConLaQueSeRelaciona = relacion.tableDestination; CTableM tablaRelacionada = listaOriginal.Find(x => x.Name.Equals(NombreTablaConLaQueSeRelaciona)); if (tablaRelacionada != null) {//Si la tabla relacionada aún está en la lista de tablas a ordenar //Meter antes en la lista de ordenadas ColocaTablaEnOrden(listaOriginal, tablaRelacionada, listaOrdenada); } } listaOrdenada.Add(cTableM); }
3/2/17
Ordenar tablas de una base de datos para que las referenciadas estén antes de las que referencian
Suscribirse a:
Entradas (Atom)