示例#1
0
        public void ManyToOne <TProperty>(Expression <Func <TComponent, TProperty> > property, Action <IManyToOneMapper> mapping) where TProperty : class
        {
            MemberInfo member = TypeExtensions.DecodeMemberAccessExpression(property);

            customizersHolder.AddCustomizer(new PropertyPath(propertyPath, member), mapping);
            MemberInfo memberOf = TypeExtensions.DecodeMemberAccessExpressionOf(property);

            customizersHolder.AddCustomizer(new PropertyPath(propertyPath, memberOf), mapping);
            explicitDeclarationsHolder.AddAsManyToOneRelation(member);
            explicitDeclarationsHolder.AddAsManyToOneRelation(memberOf);
        }
 protected void RegisterManyToOneMapping <TProperty>(Action <IManyToOneMapper> mapping, params MemberInfo[] members)
     where TProperty : class
 {
     foreach (var member in members)
     {
         CustomizersHolder.AddCustomizer(new PropertyPath(PropertyPath, member), mapping);
         explicitDeclarationsHolder.AddAsManyToOneRelation(member);
     }
 }
示例#3
0
        public override void MapField(ICustomizersHolder customizerHolder,
                                      IModelExplicitDeclarationsHolder modelExplicitDeclarationsHolder,
                                      PropertyPath currentPropertyPath,
                                      MetaEntity entity,
                                      MetaField property)
        {
            var m2oProperty   = property as ManyToOneMetaField;
            var mappingAction = new Action <IManyToOneMapper>(mapper => {
                mapper.Column(property.DbName);
                mapper.NotNullable(m2oProperty.IsRequired);
            });
            var next = new PropertyPath(currentPropertyPath, property.ClrPropertyInfo);

            customizerHolder.AddCustomizer(next, mappingAction);
            modelExplicitDeclarationsHolder.AddAsManyToOneRelation(property.ClrPropertyInfo);
        }
        public static void Merge(this IModelExplicitDeclarationsHolder destination, IModelExplicitDeclarationsHolder source)
        {
            if (destination == null || source == null)
            {
                return;
            }

            foreach (var o in source.RootEntities)
            {
                destination.AddAsRootEntity(o);
            }
            foreach (var o in source.Components)
            {
                destination.AddAsComponent(o);
            }
            foreach (var o in source.TablePerClassEntities)
            {
                destination.AddAsTablePerClassEntity(o);
            }
            foreach (var o in source.TablePerClassHierarchyEntities)
            {
                destination.AddAsTablePerClassHierarchyEntity(o);
            }
            foreach (var o in source.TablePerConcreteClassEntities)
            {
                destination.AddAsTablePerConcreteClassEntity(o);
            }

            foreach (var o in source.OneToOneRelations)
            {
                destination.AddAsOneToOneRelation(o);
            }
            foreach (var o in source.ManyToOneRelations)
            {
                destination.AddAsManyToOneRelation(o);
            }
            foreach (var o in source.KeyManyToManyRelations)
            {
                destination.AddAsManyToManyKeyRelation(o);
            }
            foreach (var o in source.ItemManyToManyRelations)
            {
                destination.AddAsManyToManyItemRelation(o);
            }
            foreach (var o in source.ManyToAnyRelations)
            {
                destination.AddAsManyToAnyRelation(o);
            }
            foreach (var o in source.OneToManyRelations)
            {
                destination.AddAsOneToManyRelation(o);
            }
            foreach (var o in source.Any)
            {
                destination.AddAsAny(o);
            }

            foreach (var o in source.Poids)
            {
                destination.AddAsPoid(o);
            }
            foreach (var o in source.ComposedIds)
            {
                destination.AddAsPartOfComposedId(o);
            }
            foreach (var o in source.VersionProperties)
            {
                destination.AddAsVersionProperty(o);
            }
            foreach (var o in source.NaturalIds)
            {
                destination.AddAsNaturalId(o);
            }

            foreach (var o in source.Sets)
            {
                destination.AddAsSet(o);
            }
            foreach (var o in source.Bags)
            {
                destination.AddAsBag(o);
            }
            foreach (var o in source.IdBags)
            {
                destination.AddAsIdBag(o);
            }
            foreach (var o in source.Lists)
            {
                destination.AddAsList(o);
            }
            foreach (var o in source.Arrays)
            {
                destination.AddAsArray(o);
            }
            foreach (var o in source.Dictionaries)
            {
                destination.AddAsMap(o);
            }
            foreach (var o in source.Properties)
            {
                destination.AddAsProperty(o);
            }
            foreach (var o in source.PersistentMembers)
            {
                destination.AddAsPersistentMember(o);
            }
            foreach (var o in source.SplitDefinitions)
            {
                destination.AddAsPropertySplit(o);
            }
            foreach (var dynamicComponent in source.DynamicComponents)
            {
                var template = source.GetDynamicComponentTemplate(dynamicComponent);
                destination.AddAsDynamicComponent(dynamicComponent, template);
            }
        }