Exemplo n.º 1
0
        ManyToOneMapping IManyToOneMappingProvider.GetManyToOneMapping()
        {
            var mapping = new ManyToOneMapping(attributes.Clone())
            {
                ContainingEntityType = entity,
                Member = member
            };

            mapping.Set(x => x.Name, Layer.Defaults, member.Name);
            mapping.Set(x => x.Class, Layer.Defaults, new TypeReference(typeof(TOther)));

            if (columns.Count == 0 && !mapping.IsSpecified("Formula"))
            {
                mapping.AddColumn(Layer.Defaults, CreateColumn(member.Name + "_id"));
            }

            foreach (var column in columns)
            {
                var columnMapping = CreateColumn(column);

                mapping.AddColumn(Layer.UserSupplied, columnMapping);
            }

            return(mapping);
        }
        protected ManyToOneMapping reference_with_column(string column)
        {
            var reference = new ManyToOneMapping();

            reference.AddColumn(Layer.Defaults, new ColumnMapping("propertyColumn"));
            return(reference);
        }
Exemplo n.º 3
0
        ManyToOneMapping IManyToOneMappingProvider.GetManyToOneMapping()
        {
            var mapping = new ManyToOneMapping(attributes.CloneInner());

            mapping.ContainingEntityType = entity;
            mapping.Member = property;

            if (!mapping.IsSpecified("Name"))
            {
                mapping.Name = property.Name;
            }

            if (!mapping.IsSpecified("Class"))
            {
                mapping.SetDefaultValue(x => x.Class, new TypeReference(typeof(TOther)));
            }

            if (columns.Count == 0)
            {
                mapping.AddDefaultColumn(CreateColumn(property.Name + "_id"));
            }

            foreach (var column in columns)
            {
                var columnMapping = CreateColumn(column);

                mapping.AddColumn(columnMapping);
            }

            return(mapping);
        }
Exemplo n.º 4
0
        public void ShouldWriteColumns()
        {
            var mapping = new ManyToOneMapping();

            mapping.AddColumn(new ColumnMapping());

            writer.VerifyXml(mapping)
            .Element("column").Exists();
        }
Exemplo n.º 5
0
        public void Column(string columnName)
        {
            var originalColumn = mapping.Columns.FirstOrDefault();
            var column         = originalColumn == null ? new ColumnMapping() : originalColumn.Clone();

            column.Set(x => x.Name, Layer.Conventions, columnName);

            mapping.AddColumn(Layer.Conventions, column);
        }
Exemplo n.º 6
0
        public override void ProcessManyToOne(ManyToOneMapping thisSide)
        {
            if (thisSide.OtherSide == null)
            {
                return;
            }

            // other side is always going to be a collection for a many-to-one mapping
            var otherSide = (ICollectionMapping)thisSide.OtherSide;

            // both sides have user-defined key columns... leave alone!
            if (otherSide.Key.Columns.HasUserDefined() && thisSide.Columns.HasUserDefined())
            {
                return;
            }

            if (otherSide.Key.Columns.HasUserDefined())
            {
                // only other side has user-defined columns, so we'll bring them across to this side
                thisSide.ClearColumns();
                otherSide.Key.Columns.Each(x => thisSide.AddColumn(x.Clone()));
                return;
            }

            if (otherSide.Key.Columns.HasUserDefined())
            {
                // only other side has user-defined columns, so we'll bring them across to this side
                thisSide.ClearColumns();
                otherSide.Key.Columns.Each(x => thisSide.AddColumn(x.Clone()));
                return;
            }

            // the other side doesn't have any user defined columns, so we'll use the ones from this side
            // whether they're user defined or not.
            otherSide.Key.ClearColumns();
            thisSide.Columns.Each(x => otherSide.Key.AddColumn(x.Clone()));
        }
        public void Column(string columnName)
        {
            if (mapping.Columns.UserDefined.Count() > 0)
            {
                return;
            }

            var originalColumn = mapping.Columns.FirstOrDefault();
            var column         = originalColumn == null ? new ColumnMapping() : originalColumn.Clone();

            column.Name = columnName;

            mapping.ClearColumns();
            mapping.AddColumn(column);
        }
Exemplo n.º 8
0
        private ManyToOneMapping CreateMapping(Member member)
        {
            var mapping = new ManyToOneMapping {
                Member = member
            };

            mapping.Set(x => x.Name, Layer.Defaults, member.Name);
            mapping.Set(x => x.Class, Layer.Defaults, new TypeReference(member.PropertyType));
            var columnMapping = new ColumnMapping();

            columnMapping.Set(x => x.Name, Layer.Defaults, member.Name + "_id");
            mapping.AddColumn(Layer.Defaults, columnMapping);

            SetDefaultAccess(member, mapping);

            return(mapping);
        }
Exemplo n.º 9
0
        protected virtual NaturalIdPart <T> Reference(Member member, string columnName)
        {
            var key = new ManyToOneMapping
            {
                Name  = member.Name,
                Class = new TypeReference(member.PropertyType),
                ContainingEntityType = typeof(T)
            };

            key.AddColumn(new ColumnMapping {
                Name = columnName
            });

            manyToOnes.Add(key);

            return(this);
        }
        /// <summary>
        /// Sets the column.
        /// </summary>
        /// <param name="manyToOneMapping">The many to one mapping.</param>
        /// <param name="columnName">Name of the column.</param>
        public static void Column(this ManyToOneMapping manyToOneMapping, string columnName)
        {
            if (manyToOneMapping.Columns.Any())
            {
                return;
            }

            var originalColumn = manyToOneMapping.Columns.FirstOrDefault();
            var column         = originalColumn == null ? new ColumnMapping() : originalColumn.Clone();
            var columnPart     = new ColumnPart(column);

            columnPart.Name(columnName);

            manyToOneMapping.MakeColumnsEmpty(Layer.Defaults);
            manyToOneMapping.AddColumn(Layer.Defaults, column);

            //  manyToOneMapping.AddColumn ( column );
        }
Exemplo n.º 11
0
        protected virtual NaturalIdPart <T> Reference(Member member, string columnName)
        {
            var key = new ManyToOneMapping
            {
                ContainingEntityType = typeof(T)
            };

            key.Set(x => x.Name, Layer.Defaults, member.Name);
            key.Set(x => x.Class, Layer.Defaults, new TypeReference(member.PropertyType));
            var columnMapping = new ColumnMapping();

            columnMapping.Set(x => x.Name, Layer.Defaults, columnName);
            key.AddColumn(Layer.Defaults, columnMapping);

            manyToOnes.Add(key);

            return(this);
        }
 public void ColumnsCollectionHasSameCountAsMapping()
 {
     mapping.AddColumn(new ColumnMapping());
     inspector.Columns.Count().ShouldEqual(1);
 }