Ejemplo n.º 1
0
        private MemberMapping MapMember(TypeMapping mapping, IMemberMappingConfiguration configuration)
        {
            // TODO: unique key, that is not UNIQUE
            var  sqlType    = FormSqlType(configuration);
            var  notNull    = (configuration.ColumnConstraints & ColumnConstraints.NotNull) != 0;
            var  primary    = (configuration.ColumnConstraints & ColumnConstraints.PrimaryKey) != 0;
            var  unique     = (configuration.ColumnConstraints & ColumnConstraints.Unique) != 0;
            bool uniqueKey  = mapping.IsUniqueKey(configuration.Member.Name);
            var  columnName = GetColumnName(configuration);

            return(new MemberMapping(mapping, configuration.Member, columnName, sqlType, notNull, primary, unique, uniqueKey));
        }
Ejemplo n.º 2
0
        private string GetColumnName(IMemberMappingConfiguration configuration)
        {
            var columnName = configuration.ColumnName;

            if (String.IsNullOrEmpty(columnName))
            {
                columnName = configuration.Member.Name;
            }

            if (ColumnNameConvention != null)
            {
                columnName = ColumnNameConvention.FormatName(columnName);
            }

            return(columnName);
        }
Ejemplo n.º 3
0
        private SqlType FormSqlType(IMemberMappingConfiguration configuration)
        {
            var sqlType = configuration.ColumnType;

            if (sqlType == null)
            {
                sqlType = DiscoverSqlType(configuration.Member);
            }

            var meta = new List <DataTypeMeta>();

            if (configuration.Size != null)
            {
                meta.Add(new DataTypeMeta("Size", configuration.Size.Value.ToString()));
            }
            if (configuration.Precision != null)
            {
                meta.Add(new DataTypeMeta("Precision", configuration.Precision.Value.ToString()));
            }

            return(SqlType.Resolve(sqlType.Value, meta.ToArray()));
        }