public void BuildModel(CodeGenerator.BL.DBReader.BaseSchemaReader dr) { EntityCollection = dr.RetrieveEntities(this); if (dr.WorkerThread != null && dr.WorkerThread.WorkerReportsProgress) { dr.WorkerThread.ReportProgress(0); } int count = 1; double prog = 0; foreach (Entity ent in EntityCollection) { if (OnEntityAdding != null) { OnEntityAdding(ent); } dr.PopulateFields(ent); dr.PopulateTableConstraints(ent); if (dr.WorkerThread != null && dr.WorkerThread.WorkerReportsProgress) { prog = (double)count / (double)_entityCollection.Count; dr.WorkerThread.ReportProgress((int)(prog * 100)); } count++; } if (dr.WorkerThread != null && dr.WorkerThread.WorkerReportsProgress) { dr.WorkerThread.ReportProgress(0); } count = 1; foreach (Entity ent in EntityCollection) { dr.PopulateForeignRelations(ent); if (dr.WorkerThread != null && dr.WorkerThread.WorkerReportsProgress) { prog = (double)count / (double)_entityCollection.Count; dr.WorkerThread.ReportProgress((int)(prog * 100)); } count++; } }