Beispiel #1
0
        /// <summary>
        /// Initiates auto-mapping of entity set members. The OnColumnMapping event will be fired for every suggested mapping between a conceptual model member property and a storage model member property.
        /// </summary>
        public void AutoMapMembers(ModelEntityType entityType)
        {
            //go through model entity set members and attempt to map to storage set(s) members.
            //  ...raise BeforeColumnMapping for each mapping suggestion, to give caller a chance to veto...
            foreach (ModelMemberProperty modelMemberProperty in entityType.MemberProperties)
            {
                List <StoreMemberProperty> mappingCandidates = _storeEntitySets.SelectMany(mp => mp.EntityType.MemberProperties.Where(mpn => mpn.Name.Equals(modelMemberProperty.Name))).ToList();
                if (mappingCandidates.Count > 0)
                {
                    //match(es) found
                    foreach (StoreMemberProperty storeMemberProperty in mappingCandidates)
                    {
                        AutoMapArgs args = new AutoMapArgs()
                        {
                            ModelMemberProperty = modelMemberProperty,
                            StoreMemberProperty = storeMemberProperty,
                            UseMapping          = true
                        };
                        if (OnColumnMapping != null)
                        {
                            OnColumnMapping(this, args);
                        }
                        if (args.UseMapping)
                        {
                            AddMemberMapping(modelMemberProperty, storeMemberProperty);
                        }
                    }
                }
                else
                {
                    //no match found, raise event to request mapping...
                    AutoMapArgs args = new AutoMapArgs()
                    {
                        ModelMemberProperty = modelMemberProperty,
                        StoreMemberProperty = null,
                        UseMapping          = false
                    };

                    if (OnColumnMapping != null)
                    {
                        OnColumnMapping(this, args);
                    }
                    if (args.UseMapping == true && args.StoreMemberProperty != null)
                    {
                        AddMemberMapping(modelMemberProperty, args.StoreMemberProperty);
                    }
                }
            }
        }
        /// <summary>
        /// Initiates auto-mapping of entity set members. The OnColumnMapping event will be fired for every suggested mapping between a conceptual model member property and a storage model member property.
        /// </summary>
        public void AutoMapMembers(ModelEntityType entityType)
        {
            //go through model entity set members and attempt to map to storage set(s) members.
            //  ...raise BeforeColumnMapping for each mapping suggestion, to give caller a chance to veto...
            foreach (ModelMemberProperty modelMemberProperty in entityType.MemberProperties)
            {
                List<StoreMemberProperty> mappingCandidates = _storeEntitySets.SelectMany(mp => mp.EntityType.MemberProperties.Where(mpn => mpn.Name.Equals(modelMemberProperty.Name))).ToList();
                if (mappingCandidates.Count > 0)
                {
                    //match(es) found
                    foreach (StoreMemberProperty storeMemberProperty in mappingCandidates)
                    {
                        AutoMapArgs args = new AutoMapArgs()
                        {
                            ModelMemberProperty = modelMemberProperty,
                            StoreMemberProperty = storeMemberProperty,
                            UseMapping = true
                        };
                        if (OnColumnMapping != null)
                        {
                            OnColumnMapping(this, args);
                        }
                        if (args.UseMapping)
                        {
                            AddMemberMapping(modelMemberProperty, storeMemberProperty);
                        }
                    }
                }
                else
                {
                    //no match found, raise event to request mapping...
                    AutoMapArgs args = new AutoMapArgs()
                    {
                        ModelMemberProperty = modelMemberProperty,
                        StoreMemberProperty = null,
                        UseMapping = false
                    };

                    if (OnColumnMapping != null)
                    {
                        OnColumnMapping(this, args);
                    }
                    if (args.UseMapping == true && args.StoreMemberProperty != null)
                    {
                        AddMemberMapping(modelMemberProperty, args.StoreMemberProperty);
                    }
                }
            }
        }