Exemplo n.º 1
0
        private void AddBooleanProperty(Entity entity, Table table, int ordinal, string propertyName, string fieldName)
        {
            Property property = new Property()
            {
                Entity       = entity,
                Ordinal      = ordinal,
                Name         = propertyName,
                IsReadOnly   = false,
                IsPrimaryKey = false,
                IsAbstract   = false,
                Purpose      = PropertyPurpose.Property
            };

            property.Save();

            Relation relation = new Relation()
            {
                Property = property,
                Entity   = Entity.Boolean
            };

            relation.Save();

            Field field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = fieldName,
                TypeName     = "bit",
                IsNullable   = false,
                IsPrimaryKey = false,
                KeyOrdinal   = 0,
                Length       = 1,
                Scale        = 0,
                Precision    = 1,
                Purpose      = FieldPurpose.Value
            };

            field.Save();
        }
Exemplo n.º 2
0
        private void AddObjectProperty(Entity entity, Table table, int ordinal, string propertyName, Entity type, string fieldName)
        {
            Property property = new Property()
            {
                Entity       = entity,
                Ordinal      = ordinal,
                Name         = propertyName,
                IsReadOnly   = false,
                IsPrimaryKey = false,
                IsAbstract   = false,
                Purpose      = PropertyPurpose.Property
            };

            property.Save();

            Relation relation = new Relation()
            {
                Property = property,
                Entity   = type
            };

            relation.Save();

            Field field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = fieldName,
                TypeName     = "uniqueidentifier",
                IsNullable   = false,
                IsPrimaryKey = false,
                KeyOrdinal   = 0,
                Length       = 16,
                Scale        = 0,
                Precision    = 0,
                Purpose      = FieldPurpose.Object
            };

            field.Save();
        }
Exemplo n.º 3
0
        private void AddVersionProperty(Entity entity, Table table)
        {
            Property property = new Property()
            {
                Entity       = entity,
                Ordinal      = 1,
                Name         = "Version",
                IsReadOnly   = false,
                IsPrimaryKey = false,
                Purpose      = PropertyPurpose.System,
                IsAbstract   = false
            };

            property.Save();

            Relation relation = new Relation()
            {
                Property = property,
                Entity   = Entity.Binary
            };

            relation.Save();

            Field field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = "version",
                TypeName     = "rowversion",
                IsNullable   = false,
                IsPrimaryKey = false,
                KeyOrdinal   = 0,
                Length       = 8,
                Scale        = 0,
                Precision    = 0,
                Purpose      = FieldPurpose.Value
            };

            field.Save();
        }
Exemplo n.º 4
0
        private void AddIdentityProperty(Entity entity, Table table)
        {
            Property property = new Property()
            {
                Entity       = entity,
                Ordinal      = 0,
                Name         = "Identity",
                IsReadOnly   = true,
                IsPrimaryKey = true,
                Purpose      = PropertyPurpose.System,
                IsAbstract   = false
            };

            property.Save();

            Relation relation = new Relation()
            {
                Property = property,
                Entity   = Entity.GUID
            };

            relation.Save();

            Field field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = "key",
                TypeName     = "uniqueidentifier",
                IsNullable   = false,
                IsPrimaryKey = true,
                KeyOrdinal   = 1,
                Length       = 16,
                Scale        = 0,
                Precision    = 0,
                Purpose      = FieldPurpose.Value
            };

            field.Save();
        }
Exemplo n.º 5
0
        private void CreateRelation(Namespace root, Entity propertyType, Entity entityType)
        {
            Entity entity = new Entity()
            {
                Namespace  = root,
                Name       = "Relation",
                Alias      = "Допустимые для свойства объекта типы данных",
                Code       = 7,
                IsSealed   = false,
                IsAbstract = false
            };

            entity.Save();

            Table table = new Table()
            {
                Entity  = entity,
                Schema  = "metadata",
                Name    = "relations",
                Purpose = TablePurpose.Main
            };

            table.Save();

            Property property = new Property()
            {
                Entity       = entity,
                Ordinal      = 1,
                Name         = "Property",
                IsReadOnly   = false,
                IsPrimaryKey = true,
                IsAbstract   = false,
                Purpose      = PropertyPurpose.Property
            };

            property.Save();
            Relation relation = new Relation()
            {
                Property = property,
                Entity   = propertyType
            };

            relation.Save();
            Field field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = "property",
                TypeName     = "uniqueidentifier",
                IsNullable   = false,
                IsPrimaryKey = true,
                KeyOrdinal   = 1,
                Length       = 16,
                Scale        = 0,
                Precision    = 0,
                Purpose      = FieldPurpose.Object
            };

            field.Save();

            property = new Property()
            {
                Entity       = entity,
                Ordinal      = 2,
                Name         = "Entity",
                IsReadOnly   = false,
                IsPrimaryKey = true,
                IsAbstract   = false,
                Purpose      = PropertyPurpose.Property
            };
            property.Save();
            relation = new Relation()
            {
                Property = property,
                Entity   = entityType
            };
            relation.Save();
            field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = "entity",
                TypeName     = "uniqueidentifier",
                IsNullable   = false,
                IsPrimaryKey = true,
                KeyOrdinal   = 2,
                Length       = 16,
                Scale        = 0,
                Precision    = 0,
                Purpose      = FieldPurpose.Object
            };
            field.Save();
        }
Exemplo n.º 6
0
        private void CreateField(Namespace root, Entity tableType, Entity propertyType)
        {
            Entity entity = new Entity()
            {
                Namespace  = root,
                Name       = "Field",
                Alias      = "Поле таблицы СУБД объекта метаданных",
                Code       = 6,
                IsSealed   = false,
                IsAbstract = false
            };

            entity.Save();

            Table table = new Table()
            {
                Entity  = entity,
                Schema  = "metadata",
                Name    = "fields",
                Purpose = TablePurpose.Main
            };

            table.Save();

            AddIdentityProperty(entity, table);
            AddVersionProperty(entity, table);
            AddStringProperty(entity, table, 2, "Name", "name", 100);
            AddObjectProperty(entity, table, 3, "Table", tableType, "table");
            AddObjectProperty(entity, table, 4, "Property", propertyType, "property");
            AddIntegerProperty(entity, table, 5, "Purpose", "purpose");
            AddStringProperty(entity, table, 6, "TypeName", "type_name", 16);
            AddIntegerProperty(entity, table, 7, "Length", "length");
            AddIntegerProperty(entity, table, 8, "Precision", "precision");
            AddIntegerProperty(entity, table, 9, "Scale", "scale");
            AddBooleanProperty(entity, table, 10, "IsNullable", "is_nullable");
            AddBooleanProperty(entity, table, 11, "IsPrimaryKey", "is_primary_key");

            Property property = new Property()
            {
                Entity       = entity,
                Ordinal      = 12,
                Name         = "KeyOrdinal",
                IsReadOnly   = false,
                IsPrimaryKey = false,
                IsAbstract   = false,
                Purpose      = PropertyPurpose.Property
            };

            property.Save();
            Relation relation = new Relation()
            {
                Property = property,
                Entity   = Entity.Byte
            };

            relation.Save();
            Field field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = "key_ordinal",
                TypeName     = "tinyint",
                IsNullable   = false,
                IsPrimaryKey = false,
                KeyOrdinal   = 0,
                Length       = 1,
                Scale        = 0,
                Precision    = 3,
                Purpose      = FieldPurpose.Value
            };

            field.Save();
        }
Exemplo n.º 7
0
        private Entity CreateNamespace(Namespace root, Entity infoBase)
        {
            Entity entity = new Entity()
            {
                Namespace  = root,
                Name       = "Namespace",
                Alias      = "Пространство имён",
                Code       = 2,
                IsSealed   = false,
                IsAbstract = false
            };

            entity.Save();

            Table table = new Table()
            {
                Entity  = entity,
                Schema  = "metadata",
                Name    = "namespaces",
                Purpose = TablePurpose.Main
            };

            table.Save();

            AddIdentityProperty(entity, table);
            AddVersionProperty(entity, table);
            AddStringProperty(entity, table, 2, "Name", "name", 100);

            Property property = new Property()
            {
                Entity       = entity,
                Ordinal      = 3,
                Name         = "Owner",
                IsReadOnly   = false,
                IsPrimaryKey = false,
                IsAbstract   = false,
                Purpose      = PropertyPurpose.Property
            };

            property.Save();

            Relation relation = new Relation()
            {
                Property = property,
                Entity   = infoBase
            };

            relation.Save();

            relation = new Relation()
            {
                Property = property,
                Entity   = entity
            };
            relation.Save();

            Field field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = "owner",
                TypeName     = "uniqueidentifier",
                IsNullable   = false,
                IsPrimaryKey = false,
                KeyOrdinal   = 0,
                Length       = 16,
                Scale        = 0,
                Precision    = 0,
                Purpose      = FieldPurpose.Object
            };

            field.Save();

            field = new Field()
            {
                Property     = property,
                Table        = table,
                Name         = "owner_",
                TypeName     = "int",
                IsNullable   = false,
                IsPrimaryKey = false,
                KeyOrdinal   = 0,
                Length       = 4,
                Scale        = 0,
                Precision    = 10,
                Purpose      = FieldPurpose.TypeCode
            };
            field.Save();

            return(entity);
        }