public ColumnMapper(DataTypeMapper dataTypeMapper, AttributeMapper attributeMapper) { _dataTypeMapper = dataTypeMapper; _attributeMapper = attributeMapper; _objectSpace = _attributeMapper.ObjectSpace; _extraInfoBuilder = new ExtraInfoBuilder(_objectSpace, _attributeMapper); }
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; }
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); }
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); }
public ColumnMapper(DataTypeMapper dataTypeMapper, AttributeMapper attributeMapper) { _dataTypeMapper = dataTypeMapper; _attributeMapper = attributeMapper; _objectSpace = _attributeMapper.ObjectSpace; _extraInfoBuilder = new ExtraInfoBuilder(_objectSpace, _attributeMapper); }
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); }