public void BuildEntityMappingConfigurationXml() { EntityMappingConfiguration config = new EntityMappingConfiguration(); EntityConfiguration entity = new EntityConfiguration(); entity.Name = "Post"; entity.TableName = "post"; entity.TypeName = typeof(Post).AssemblyQualifiedName; PropertyConfiguration postIdProperty = new PropertyConfiguration(); postIdProperty.Name = "Id"; postIdProperty.PropertyType = typeof(int).FullName; postIdProperty.ColumnName = "post_id"; postIdProperty.IsPrimaryKey = true; postIdProperty.IsAutoIdentity = true; postIdProperty.IsRelationKey = false; postIdProperty.RelatedForeignKey = string.Empty; postIdProperty.RelatedType = string.Empty; PropertyConfiguration postTopicIdProperty = new PropertyConfiguration(); postTopicIdProperty.Name = "TopicId"; postTopicIdProperty.PropertyType = typeof(int).FullName; postTopicIdProperty.ColumnName = "post_topic_id"; postTopicIdProperty.IsPrimaryKey = false; postTopicIdProperty.IsAutoIdentity = false; postTopicIdProperty.IsRelationKey = true; postTopicIdProperty.RelatedForeignKey = "topic_id"; postTopicIdProperty.RelatedType = typeof(Topic).FullName; PropertyConfiguration postAuthorIdProperty = new PropertyConfiguration(); postAuthorIdProperty.Name = "AuthorId"; postAuthorIdProperty.PropertyType = typeof(int).FullName; postAuthorIdProperty.ColumnName = "post_author_id"; postAuthorIdProperty.IsPrimaryKey = false; postAuthorIdProperty.IsAutoIdentity = false; postAuthorIdProperty.IsRelationKey = true; postAuthorIdProperty.RelatedForeignKey = "user_id"; postAuthorIdProperty.RelatedType = typeof(User).FullName; PropertyConfiguration postContentProperty = new PropertyConfiguration(); postContentProperty.Name = "Content"; postContentProperty.PropertyType = typeof(string).FullName; postContentProperty.SqlType = "nvarchar(max)"; postContentProperty.ColumnName = "post_content"; postContentProperty.IsPrimaryKey = false; postContentProperty.IsAutoIdentity = false; PropertyConfiguration postCreationDateTimeProperty = new PropertyConfiguration(); postCreationDateTimeProperty.Name = "CreationDateTime"; postCreationDateTimeProperty.PropertyType = typeof(DateTime).FullName; postCreationDateTimeProperty.ColumnName = "post_creation_datetime"; postCreationDateTimeProperty.IsPrimaryKey = false; postCreationDateTimeProperty.IsAutoIdentity = false; entity.Properties = new PropertyConfiguration[] { postIdProperty, postTopicIdProperty, postAuthorIdProperty, postContentProperty, postCreationDateTimeProperty }; config.Entities = new EntityConfiguration[] { entity }; bool serialized = SerializationManager.Serialize(config, AppDomain.CurrentDomain.BaseDirectory + "EntityMappingConfig.xml"); using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "EntityMappingConfig.xml", FileMode.Open, FileAccess.Read)) { using (MemoryStream ms = new MemoryStream()) { byte[] buffers = new byte[2048]; int position = fs.Read(buffers, 0, buffers.Length); ms.Seek(0, SeekOrigin.Begin); while (position > 0) { ms.Write(buffers, 0, position); position = fs.Read(buffers, 0, buffers.Length); } ms.Flush(); EntityMappingConfiguration entityMappingConfig = ObjectSerializerFactory.GetObjectSerializer("XML").Deserialize<EntityMappingConfiguration>(ms.ToArray()); Assert.AreEqual(config.Entities[0].Properties[0].SqlType, entityMappingConfig.Entities[0].Properties[0].SqlType); Assert.AreEqual(config.Entities[0].Properties[2].PropertyType, entityMappingConfig.Entities[0].Properties[2].PropertyType); } } }
private void btnBuilderEntityMappingXml_Click(object sender, EventArgs e) { EntityMappingConfiguration entityMappingConfig = new EntityMappingConfiguration(); }