Esempio n. 1
0
 public ColumnMapper(HbmColumn mapping, string memberName)
 {
     if (mapping == null)
     {
         throw new ArgumentNullException("mapping");
     }
     if (memberName == null)
     {
         throw new ArgumentNullException("memberName");
     }
     if (string.Empty == memberName.Trim())
     {
         throw new ArgumentNullException("memberName", "The column name should be a valid not empty name.");
     }
     this.mapping = mapping;
     if (string.IsNullOrEmpty(mapping.name))
     {
         mapping.name = memberName;
     }
 }
Esempio n. 2
0
        public void Column(Action <IColumnMapper> columnMapper)
        {
            HbmColumn hbm = mapping.Columns.SingleOrDefault();

            hbm = hbm
                  ??
                  new HbmColumn
            {
                name = mapping.column1
            };
            columnMapper(new ColumnMapper(hbm, DefaultIndexColumnName));
            if (ColumnTagIsRequired(hbm))
            {
                mapping.column = hbm;
                ResetColumnPlainValues();
            }
            else
            {
                mapping.column1 = !DefaultIndexColumnName.Equals(hbm.name) ? hbm.name : null;
            }
        }
        public void Column(Action <IColumnMapper> columnMapper)
        {
            if (manyToOne.Columns.Count() > 1)
            {
                throw new MappingException("Multi-columns property can't be mapped through single-column API.");
            }
            manyToOne.formula = null;
            HbmColumn hbm = manyToOne.Columns.SingleOrDefault();

            hbm = hbm
                  ??
                  new HbmColumn
            {
                name             = manyToOne.column,
                notnull          = manyToOne.notnull,
                notnullSpecified = manyToOne.notnullSpecified,
                unique           = manyToOne.unique,
                uniqueSpecified  = manyToOne.unique,
                uniquekey        = manyToOne.uniquekey,
                index            = manyToOne.index
            };
            var defaultColumnName = member.Name;

            columnMapper(new ColumnMapper(hbm, member != null ? defaultColumnName : "unnamedcolumn"));
            if (hbm.sqltype != null || hbm.@default != null || hbm.check != null)
            {
                manyToOne.Items = new[] { hbm };
                ResetColumnPlainValues();
            }
            else
            {
                manyToOne.column           = defaultColumnName == null || !defaultColumnName.Equals(hbm.name) ? hbm.name : null;
                manyToOne.notnull          = hbm.notnull;
                manyToOne.notnullSpecified = hbm.notnullSpecified;
                manyToOne.unique           = hbm.unique;
                manyToOne.uniquekey        = hbm.uniquekey;
                manyToOne.index            = hbm.index;
            }
        }
Esempio n. 4
0
        public AnyMapper(MemberInfo member, Type foreignIdType, HbmAny any, HbmMapping mapDoc)
        {
            this.member        = member;
            this.foreignIdType = foreignIdType;
            this.any           = any;
            this.mapDoc        = mapDoc;
            if (member == null)
            {
                this.any.access = "none";
            }
            if (member == null)
            {
                entityPropertyMapper = new NoMemberPropertyMapper();
            }
            else
            {
                entityPropertyMapper = new AccessorPropertyMapper(member.DeclaringType, member.Name, x => any.access = x);
            }
            if (foreignIdType == null)
            {
                throw new ArgumentNullException("foreignIdType");
            }
            if (any == null)
            {
                throw new ArgumentNullException("any");
            }

            this.any.idtype = this.foreignIdType.GetNhTypeName();
            var idHbmColumn  = new HbmColumn();
            var idColumnName = member == null ? DefaultIdColumnNameWhenNoProperty : member.Name + "Id";

            idColumnMapper = new ColumnMapper(idHbmColumn, idColumnName);
            var classHbmColumn  = new HbmColumn();
            var classColumnName = member == null ? DefaultMetaColumnNameWhenNoProperty : member.Name + "Class";

            classColumnMapper = new ColumnMapper(classHbmColumn, classColumnName);
            any.column        = new[] { idHbmColumn, classHbmColumn };
        }
Esempio n. 5
0
        public void Column(Action <IColumnMapper> columnMapper)
        {
            if (elementMapping.Columns.Count() > 1)
            {
                throw new MappingException("Multi-columns property can't be mapped through singlr-column API.");
            }
            elementMapping.formula = null;
            HbmColumn hbm = elementMapping.Columns.SingleOrDefault();

            hbm = hbm
                  ??
                  new HbmColumn
            {
                name            = elementMapping.column,
                length          = elementMapping.length,
                scale           = elementMapping.scale,
                precision       = elementMapping.precision,
                notnull         = elementMapping.notnull,
                unique          = elementMapping.unique,
                uniqueSpecified = elementMapping.unique,
            };
            columnMapper(new ColumnMapper(hbm, DefaultColumnName));
            if (ColumnTagIsRequired(hbm))
            {
                elementMapping.Items = new[] { hbm };
                ResetColumnPlainValues();
            }
            else
            {
                elementMapping.column    = !DefaultColumnName.Equals(hbm.name) ? hbm.name : null;
                elementMapping.length    = hbm.length;
                elementMapping.precision = hbm.precision;
                elementMapping.scale     = hbm.scale;
                elementMapping.notnull   = hbm.notnull;
                elementMapping.unique    = hbm.unique;
            }
        }
Esempio n. 6
0
 private bool ColumnTagIsRequired(HbmColumn hbm)
 {
     return(hbm.precision != null || hbm.scale != null || hbm.notnull || hbm.unique ||
            hbm.uniquekey != null || hbm.sqltype != null || hbm.index != null || hbm.@default != null ||
            hbm.check != null);
 }
Esempio n. 7
0
 public void Bind(HbmColumn column, bool isNullable)
 {
     this.BindColumn(column, value.Table, isNullable);
 }
Esempio n. 8
0
 public ColumnOrFormulaMapper(HbmColumn columnMapping, string memberName, HbmFormula formulaMapping) :
     base(columnMapping, memberName)
 {
     _formulaMapping = formulaMapping ?? throw new ArgumentNullException(nameof(formulaMapping));
 }