Beispiel #1
0
 public ColumnMapper(DataTypeMapper dataTypeMapper, AttributeMapper attributeMapper)
 {
     _dataTypeMapper   = dataTypeMapper;
     _attributeMapper  = attributeMapper;
     _objectSpace      = _attributeMapper.ObjectSpace;
     _extraInfoBuilder = new ExtraInfoBuilder(_objectSpace, _attributeMapper);
 }
Beispiel #2
0
        public List<IPersistentAttributeInfo> Create(Column column, IPersistentMemberInfo owner, DataTypeMapper dataTypeMapper) {
            var persistentAttributeInfos = new List<IPersistentAttributeInfo>();

            if (owner.CodeTemplateInfo.CodeTemplate.TemplateType == TemplateType.XPOneToOnePropertyMember)
                return persistentAttributeInfos;
            if (column.InPrimaryKey) {
                if (owner.Owner.CodeTemplateInfo.CodeTemplate.TemplateType != TemplateType.Struct) {
                    persistentAttributeInfos.Add(GetPersistentKeyAttribute(column));
                }
            }
            if (!column.Nullable && !column.InPrimaryKey) {
                persistentAttributeInfos.Add(GetPersistentRuleRequiredFieldAttribute(column));
            }
            if (dataTypeMapper.GetDataType(column) == DBColumnType.String) {
                persistentAttributeInfos.Add(GetPersistentSizeAttribute(column));
            }
            if (IsSimpleForeignKey(column) || ((IsCompoundPrimaryKey(owner, column) && column.IsForeignKey)))
                persistentAttributeInfos.Add(GetPersistentAssociationAttribute(column));
            //            if (owner.Owner.CodeTemplateInfo.CodeTemplate.TemplateType!=TemplateType.Struct)

            var persistentPersistentAttribute = GetPersistentPersistentAttribute(column.Name);
            if (IsSimpleForeignKey(column) && IsCompoundForeignKey(column))
                persistentPersistentAttribute.MapTo = String.Empty;
            persistentAttributeInfos.Add(persistentPersistentAttribute);
            return persistentAttributeInfos;
        }
Beispiel #3
0
 public void Map(Database database, IMapperInfo mapperInfo) {
     var attributeMapper = new AttributeMapper(_objectSpace);
     var tableMapper = new TableMapper(_objectSpace, database, attributeMapper);
     var dataTypeMapper = new DataTypeMapper();
     var columnMapper = new ColumnMapper(dataTypeMapper, attributeMapper);
     Tracing.Tracer.LogSeparator("DBMapper Start mapping database " + database.Name);
     foreach (Table table in database.Tables.OfType<Table>().Where(table => !(table.IsSystemObject))) {
         Tracing.Tracer.LogValue("Table", table.Name);
         IPersistentClassInfo persistentClassInfo = tableMapper.Create(table, _persistentAssemblyInfo, mapperInfo);
         foreach (Column column in table.Columns) {
             columnMapper.Create(column, persistentClassInfo);
         }
     }
     _dataStoreLogonObject = (IDataStoreLogonObject)ReflectionHelper.CreateObject(XafTypesInfo.Instance.FindBussinessObjectType<IDataStoreLogonObject>(), new object[] { _persistentAssemblyInfo.Session, _dataStoreLogonObject });
     attributeMapper.Create(_persistentAssemblyInfo, _dataStoreLogonObject);
     Func<ITemplateInfo, bool> templateInfoPredicate = info => info.Name == ExtraInfoBuilder.SupportPersistentObjectsAsAPartOfACompositeKey;
     CodeEngine.SupportCompositeKeyPersistentObjects(_persistentAssemblyInfo, templateInfoPredicate);
 }
Beispiel #4
0
        public void Map(Database database, IMapperInfo mapperInfo)
        {
            var attributeMapper = new AttributeMapper(_objectSpace);
            var tableMapper     = new TableMapper(_objectSpace, database, attributeMapper);
            var dataTypeMapper  = new DataTypeMapper();
            var columnMapper    = new ColumnMapper(dataTypeMapper, attributeMapper);

            Tracing.Tracer.LogSeparator("DBMapper Start mapping database " + database.Name);
            foreach (Table table in database.Tables.OfType <Table>().Where(table => !(table.IsSystemObject)))
            {
                Tracing.Tracer.LogValue("Table", table.Name);
                IPersistentClassInfo persistentClassInfo = tableMapper.Create(table, _persistentAssemblyInfo, mapperInfo);
                foreach (Column column in table.Columns)
                {
                    columnMapper.Create(column, persistentClassInfo);
                }
            }
            _dataStoreLogonObject = (IDataStoreLogonObject)XafTypesInfo.Instance.FindBussinessObjectType <IDataStoreLogonObject>().CreateInstance(new object[] { _persistentAssemblyInfo.Session, _dataStoreLogonObject });
            attributeMapper.Create(_persistentAssemblyInfo, _dataStoreLogonObject);
            Func <ITemplateInfo, bool> templateInfoPredicate = info => info.Name == ExtraInfoBuilder.SupportPersistentObjectsAsAPartOfACompositeKey;

            CodeEngine.SupportCompositeKeyPersistentObjects(_persistentAssemblyInfo, templateInfoPredicate);
        }
Beispiel #5
0
 public ColumnMapper(DataTypeMapper dataTypeMapper, AttributeMapper attributeMapper) {
     _dataTypeMapper = dataTypeMapper;
     _attributeMapper = attributeMapper;
     _objectSpace = _attributeMapper.ObjectSpace;
     _extraInfoBuilder = new ExtraInfoBuilder(_objectSpace, _attributeMapper);
 }
Beispiel #6
0
        public List <IPersistentAttributeInfo> Create(Column column, IPersistentMemberInfo owner, DataTypeMapper dataTypeMapper)
        {
            var persistentAttributeInfos = new List <IPersistentAttributeInfo>();

            if (owner.CodeTemplateInfo.CodeTemplate.TemplateType == TemplateType.XPOneToOnePropertyMember)
            {
                return(persistentAttributeInfos);
            }
            if (column.InPrimaryKey)
            {
                if (owner.Owner.CodeTemplateInfo.CodeTemplate.TemplateType != TemplateType.Struct)
                {
                    persistentAttributeInfos.Add(GetPersistentKeyAttribute(column));
                }
            }
            if (!column.Nullable && !column.InPrimaryKey)
            {
                persistentAttributeInfos.Add(GetPersistentRuleRequiredFieldAttribute(column));
            }
            if (dataTypeMapper.GetDataType(column) == DBColumnType.String)
            {
                persistentAttributeInfos.Add(GetPersistentSizeAttribute(column));
            }
            if (IsSimpleForeignKey(column) || ((IsCompoundPrimaryKey(owner, column) && column.IsForeignKey)))
            {
                persistentAttributeInfos.Add(GetPersistentAssociationAttribute(column));
            }
            //            if (owner.Owner.CodeTemplateInfo.CodeTemplate.TemplateType!=TemplateType.Struct)

            var persistentPersistentAttribute = GetPersistentPersistentAttribute(column.Name);

            if (IsSimpleForeignKey(column) && IsCompoundForeignKey(column))
            {
                persistentPersistentAttribute.MapTo = String.Empty;
            }
            persistentAttributeInfos.Add(persistentPersistentAttribute);
            return(persistentAttributeInfos);
        }