コード例 #1
0
        void SetDefaultAccess(Member member, IdMapping mapping)
        {
            var resolvedAccess = MemberAccessResolver.Resolve(member);

            if (resolvedAccess != Access.Property && resolvedAccess != Access.Unset)
            {
                // if it's a property or unset then we'll just let NH deal with it, otherwise
                // set the access to be whatever we determined it might be
                mapping.Set(x => x.Access, Layer.Defaults, resolvedAccess.ToString());
            }

            if (member.IsProperty && !member.CanWrite)
            {
                mapping.Set(x => x.Access, Layer.Defaults, cfg.GetAccessStrategyForReadOnlyProperty(member).ToString());
            }
        }
コード例 #2
0
        public void ShouldWriteTheGenerator()
        {
            var generatorMapping = new GeneratorMapping();

            generatorMapping.Set(x => x.Class, Layer.Defaults, "Class");

            var mapping = new IdMapping();

            mapping.Set(x => x.Generator, Layer.Defaults, generatorMapping);

            writer.VerifyXml(mapping)
            .Element("generator").Exists();
        }
コード例 #3
0
        public void Map(ClassMappingBase classMap, Member member)
        {
            if (!(classMap is ClassMapping))
            {
                return;
            }

            var idMapping = new IdMapping {
                ContainingEntityType = classMap.Type
            };
            var columnMapping = new ColumnMapping();

            columnMapping.Set(x => x.Name, Layer.Defaults, member.Name);
            idMapping.AddColumn(Layer.Defaults, columnMapping);
            idMapping.Set(x => x.Name, Layer.Defaults, member.Name);
            idMapping.Set(x => x.Type, Layer.Defaults, new TypeReference(member.PropertyType));
            idMapping.Member = member;
            idMapping.Set(x => x.Generator, Layer.Defaults, GetDefaultGenerator(member));

            SetDefaultAccess(member, idMapping);

            ((ClassMapping)classMap).Set(x => x.Id, Layer.Defaults, idMapping);
        }
コード例 #4
0
        IdMapping IIdentityMappingProvider.GetIdentityMapping()
        {
            var mapping = new IdMapping(attributes.Clone())
            {
                ContainingEntityType = entityType
            };

            if (columns.Count > 0)
            {
                foreach (var column in columns)
                {
                    var columnMapping = new ColumnMapping(columnAttributes.Clone());
                    columnMapping.Set(x => x.Name, Layer.Defaults, column);
                    mapping.AddColumn(Layer.UserSupplied, columnMapping);
                }
            }
            else if (HasNameSpecified)
            {
                var columnMapping = new ColumnMapping(columnAttributes.Clone());
                columnMapping.Set(x => x.Name, Layer.Defaults, name);
                mapping.AddColumn(Layer.Defaults, columnMapping);
            }

            if (member != null)
            {
                mapping.Set(x => x.Name, Layer.Defaults, name);
            }

            mapping.Set(x => x.Type, Layer.Defaults, new TypeReference(identityType));

            if (GeneratedBy.IsDirty)
            {
                mapping.Set(x => x.Generator, Layer.UserSupplied, GeneratedBy.GetGeneratorMapping());
            }

            return(mapping);
        }
コード例 #5
0
 public new void UnsavedValue(string unsavedValue)
 {
     mapping.Set(x => x.UnsavedValue, Layer.Conventions, unsavedValue);
 }