예제 #1
0
        protected virtual void AddPropertyColumn(SchemaManager schemaManager, DefaultDataTypeBehaviors defaultDataTypeBehavior, string tableName, PropertyInfo property)
        {
            DataTypes dataType = GetColumnDataType(property);

            if (dataType == DataTypes.Default)
            {
                switch (defaultDataTypeBehavior)
                {
                case DefaultDataTypeBehaviors.Invalid:
                case DefaultDataTypeBehaviors.Exclude:
                    break;

                case DefaultDataTypeBehaviors.IncludeAsString:
                    AddSchemaColumn(schemaManager, tableName, property, DataTypes.String);
                    break;

                case DefaultDataTypeBehaviors.IncludeAsByteArray:
                    AddSchemaColumn(schemaManager, tableName, property, DataTypes.ByteArray);
                    break;

                default:
                    break;
                }
            }
            else
            {
                AddSchemaColumn(schemaManager, tableName, property, dataType);
            }
        }
예제 #2
0
        protected virtual void AddPropertyColumns(Type type, SchemaManager schemaManager, DefaultDataTypeBehaviors defaultDataTypeBehavior, ITypeTableNameProvider tableNameProvider = null)
        {
            string tableName = GetTableNameForType(type, tableNameProvider);

            foreach (PropertyInfo property in type.GetProperties().Where(p => p.CanWrite))
            {
                AddPropertyColumn(schemaManager, defaultDataTypeBehavior, tableName, property);
            }
        }