/// <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); } } } }