/// <summary> /// Maps DBML to SchemaModel for Transport /// </summary> /// <param name="dbml"></param> /// <returns></returns> public SchemaModel MapSchemaModel(DbmlModel dbml) { var sm = new SchemaModel(); try { sm.Name = dbml.Tables.FirstOrDefault()?.Value.Schema; foreach (var table in dbml.Tables) { var columns = (from column in dbml.Columns.Where(s => s.Key == table.Key) from c in column.Value.SerializedData select new Column() { Key = c.Key, Attribute = new ColumnAttribute() { HasDefault = c.Value.HasDefault, IsAutonumber = c.Value.IsAutonumber, IsNullable = c.Value.IsNullable, IsPrimaryKey = c.Value.IsPrimaryKey, Type = c.Value.TypeInfo.Value } }).ToList(); var t = new Table { Key = table.Key, Name = table.Value.Name, Type = table.Value.Type, Columns = columns }; sm.Tables.Add(t); } } catch (Exception e) { } return(sm); }
/// <summary> /// Converts DBML JSON to DbmlModel /// </summary> /// <param name="filePath"></param> /// <returns></returns> public DbmlModel MapDbmlModel(string filePath) { var dbml = new DbmlModel(); try { if (File.Exists(filePath)) { dbml = JsonConvert.DeserializeObject <DbmlModel>(File.ReadAllLines(filePath)[0]); File.Delete(filePath); } } catch (Exception e) { } return(dbml); }