private Property CreateProperty(Entity newEntity, Mapping mapping, string typeName, string propertyName, string columnName, string length) { Property idProperty = new PropertyImpl(propertyName); if (typeName != null) { if (typeName.IndexOf(",") > 0) idProperty.Type = typeName.Substring(0, typeName.IndexOf(",")); else { if (NHibernateTypeNames.Contains(typeName)) idProperty.NHibernateType = typeName; else idProperty.Type = typeName; } } idProperty.ValidationOptions.MaximumLength = length.As<int>(); newEntity.AddProperty(idProperty); if (mapping != null) { var column = mapping.FromTable.GetColumn(columnName.UnBackTick()); if (column == null) { // Create the column column = entityProcessor.CreateColumn(idProperty); mapping.FromTable.AddColumn(column); } mapping.AddPropertyAndColumn(idProperty, column); } return idProperty; }