public void OrdenaTablas() {
List listaOrdenada = 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:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario