예제 #1
0
        protected AnyMapping any_with_column(string column)
        {
            var any = new AnyMapping();

            any.AddIdentifierColumn(Layer.Defaults, new ColumnMapping(column));
            any.AddTypeColumn(Layer.Defaults, new ColumnMapping(column));
            return(any);
        }
예제 #2
0
        public void ShouldWriteTypeColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddTypeColumn(Layer.Defaults, new ColumnMapping("Column1"));

            writer.VerifyXml(mapping)
            .Element("column").Exists();
        }
예제 #3
0
        public void ShouldWriteTypeColumnsBeforeIdentifiers()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(Layer.Defaults, new ColumnMapping("Column1"));
            mapping.AddTypeColumn(Layer.Defaults, new ColumnMapping("Column2"));

            writer.VerifyXml(mapping)
            .Element("column[1]").HasAttribute("name", "Column2");
        }
예제 #4
0
        public void ShouldWriteTypeColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddTypeColumn(new ColumnMapping {
                Name = "Column1"
            });

            writer.VerifyXml(mapping)
            .Element("column").Exists();
        }
예제 #5
0
        AnyMapping IAnyMappingProvider.GetAnyMapping()
        {
            var mapping = new AnyMapping(attributes.CloneInner());

            if (typeColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Type Column");
            }
            if (identifierColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Identifier Column");
            }
            if (!mapping.IsSpecified("IdType"))
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an IdType");
            }

            mapping.ContainingEntityType = entity;

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

            if (!mapping.IsSpecified("MetaType"))
            {
                if (metaValues.Count() > 0)
                {
                    metaValues.Each(mapping.AddMetaValue);
                    mapping.MetaType = new TypeReference(typeof(string));
                }
                else
                {
                    mapping.MetaType = new TypeReference(property.PropertyType);
                }
            }

            foreach (var column in typeColumns)
            {
                mapping.AddTypeColumn(new ColumnMapping {
                    Name = column
                });
            }

            foreach (var column in identifierColumns)
            {
                mapping.AddIdentifierColumn(new ColumnMapping {
                    Name = column
                });
            }

            return(mapping);
        }
예제 #6
0
        AnyMapping IAnyMappingProvider.GetAnyMapping()
        {
            var mapping = new AnyMapping(attributes.Clone());

            if (typeColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Type Column");
            }
            if (identifierColumns.Count() == 0)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an Entity Identifier Column");
            }
            if (!idTypeSet)
            {
                throw new InvalidOperationException("<any> mapping is not valid without specifying an IdType");
            }

            mapping.ContainingEntityType = entity;

            mapping.Set(x => x.Name, Layer.Defaults, member.Name);

            if (!mapping.IsSpecified("MetaType"))
            {
                mapping.Set(x => x.MetaType, Layer.Defaults, new TypeReference(member.PropertyType));
            }

            if (metaValues.Count() > 0)
            {
                metaValues.Each(mapping.AddMetaValue);
                mapping.Set(x => x.MetaType, Layer.Defaults, new TypeReference(typeof(string)));
            }

            foreach (var column in typeColumns)
            {
                var columnMapping = new ColumnMapping();
                columnMapping.Set(x => x.Name, Layer.Defaults, column);
                mapping.AddTypeColumn(Layer.UserSupplied, columnMapping);
            }


            foreach (var column in identifierColumns)
            {
                var columnMapping = new ColumnMapping();
                columnMapping.Set(x => x.Name, Layer.Defaults, column);
                mapping.AddIdentifierColumn(Layer.UserSupplied, columnMapping);
            }

            return(mapping);
        }
 public void TypeColumnsCollectionHasSameCountAsMapping()
 {
     mapping.AddTypeColumn(new ColumnMapping());
     inspector.TypeColumns.Count().ShouldEqual(1);
 }
        public void ShouldWriteTypeColumnsBeforeIdentifiers()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(Layer.Defaults, new ColumnMapping("Column1"));
            mapping.AddTypeColumn(Layer.Defaults, new ColumnMapping("Column2"));

            writer.VerifyXml(mapping)
                .Element("column[1]").HasAttribute("name", "Column2");
        }
        public void ShouldWriteTypeColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddTypeColumn(Layer.Defaults, new ColumnMapping("Column1"));

            writer.VerifyXml(mapping)
                .Element("column").Exists();
        }
        protected AnyMapping any_with_column(string column)
        {
            var any = new AnyMapping();

            any.AddIdentifierColumn(Layer.Defaults, new ColumnMapping(column));
            any.AddTypeColumn(Layer.Defaults, new ColumnMapping(column));
            
            return any;
        }
        public void ShouldWriteTypeColumns()
        {
            var mapping = new AnyMapping();

            mapping.AddTypeColumn(new ColumnMapping { Name = "Column1" });

            writer.VerifyXml(mapping)
                .Element("column").Exists();
        }
        public void ShouldWriteTypeColumnsBeforeIdentifiers()
        {
            var mapping = new AnyMapping();

            mapping.AddIdentifierColumn(new ColumnMapping { Name = "Column1" });
            mapping.AddTypeColumn(new ColumnMapping { Name = "Column2" });

            writer.VerifyXml(mapping)
                .Element("column[1]").HasAttribute("name", "`Column2`");
        }