private static ManagerMethod GetMethodFromColumns(Table tableMapping, IList columns) { ManagerMethod method = new ManagerMethod(); method.EntityName = tableMapping.Type.Name; string methodName = string.Empty; foreach (ColumnSchema column in columns) { if (!tableMapping.Type.Columns.Contains(column.Name)) { continue; } Column columnMapping = tableMapping.Type.Columns[column.Name]; method.Columns.Add(columnMapping); methodName += columnMapping.Member; } if (method.Columns.Count == 0) { return(null); } method.NameSuffix = methodName; return(method); }
private static void GetForienKeys(EntityManager manager, Table tableMapping, TableSchema table) { List <ColumnSchema> columns = new List <ColumnSchema>(); foreach (ColumnSchema column in table.ForeignKeyColumns) { columns.Add(column); ManagerMethod method = GetMethodFromColumns(tableMapping, columns); if (method != null && !manager.Methods.Contains(method.NameSuffix)) { manager.Methods.Add(method); } columns.Clear(); } }
private static void GetIndexes(EntityManager manager, Table tableMapping, TableSchema table) { foreach (IndexSchema index in table.Indexes) { ManagerMethod method = GetMethodFromColumns(tableMapping, index.MemberColumns); if (method == null) { continue; } method.IsUnique = index.IsUnique; if (!manager.Methods.Contains(method.NameSuffix)) { manager.Methods.Add(method); } } }
private static void GetMethods(DatabaseSchema databaseSchema, Database database, DataManager managerMapping) { foreach (EntityManager manager in managerMapping.Managers) { if (!database.Tables.Contains(manager.TableName)) { continue; } Table tableMapping = database.Tables[manager.TableName]; TableSchema table; string[] parts = manager.TableName.Split('.'); if (parts.Length == 2) { table = databaseSchema.Tables[parts[0], parts[1]]; } else { table = databaseSchema.Tables[manager.TableName]; } if (table == null) { continue; } if (table.HasPrimaryKey) { ManagerMethod method = GetMethodFromColumns(tableMapping, table.PrimaryKey.MemberColumns); if (method != null) { method.IsKey = true; if (!manager.Methods.Contains(method.NameSuffix)) { manager.Methods.Add(method); } } } GetIndexes(manager, tableMapping, table); GetForienKeys(manager, tableMapping, table); } }