public void SaveObject(ObjectDTO ObjectDto) { using (var context = new MySecurityEntities()) { Object dbObject = ToObjectDB(ObjectDto, context); if (dbObject.ID == 0) { context.Objects.Add(dbObject); } context.SaveChanges(); } }
public void ExtractObjectsFromDB() { using (var myProjectContext = new MyProjectEntities()) { using (var mySecurityContext = new MySecurityEntities()) { foreach (var database in myProjectContext.DatabaseInformation) { var dbObject = mySecurityContext.Objects.FirstOrDefault(x => x.ObjectName == database.Name && x.Category == "Database"); if (dbObject == null) { dbObject = new Object() { ObjectName = database.Name, Category = "Database" } } ; foreach (var schema in myProjectContext.TableDrivedEntity.Where(x => x.Table.Catalog == database.Name).GroupBy(x => x.Table.RelatedSchema)) { var schemaName = ""; if (string.IsNullOrEmpty(schema.Key)) { schemaName = "Default Schema"; } else { schemaName = schema.Key; } var schemaObject = mySecurityContext.Objects.FirstOrDefault(x => x.Object2.ObjectName == dbObject.ObjectName && x.ObjectName == schemaName && x.Category == "Schema"); if (schemaObject == null) { schemaObject = new Object() { ObjectName = schemaName, Category = "Schema" }; dbObject.Object1.Add(schemaObject); } foreach (var entity in schema) { var tableObject = mySecurityContext.Objects.FirstOrDefault(x => x.Object2.Object2.ObjectName == dbObject.ObjectName && x.ObjectName == entity.Name && x.Category == "Entity"); if (tableObject == null) { tableObject = new Object() { ItemIdentity = entity.ID, NeedsExplicitPermission = true, ObjectName = entity.Name, Category = "Entity" }; schemaObject.Object1.Add(tableObject); } List <Column> columns = null; if (entity.Column.Any()) { columns = entity.Column.ToList(); } else { columns = entity.Table.Column.ToList(); } foreach (var column in columns) { var columnObject = mySecurityContext.Objects.FirstOrDefault(x => x.Object2.Object2.Object2.ObjectName == dbObject.ObjectName && x.Object2.ObjectName == tableObject.ObjectName && x.ObjectName == column.Name && x.Category == "Column"); if (columnObject == null) { columnObject = new Object() { ItemIdentity = column.ID, ObjectName = column.Name, Category = "Column" }; tableObject.Object1.Add(columnObject); } } } } if (dbObject.ID == 0) { mySecurityContext.Objects.Add(dbObject); } } mySecurityContext.SaveChanges(); } } } }