Beispiel #1
0
        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);
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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);
                }
            }
        }
Beispiel #4
0
        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);
            }
        }