private void ApplyIncludedMemberTypeMap(IncludedMember includedMember) { var typeMap = includedMember.TypeMap; var expression = includedMember.MemberExpression; var memberMaps = typeMap.PropertyMaps. Where(m => m.CanResolveValue && GetPropertyMap(m) == null) .Select(p => new PropertyMap(p, this, expression)) .ToList(); var notOverridenPathMaps = NotOverridenPathMaps(typeMap); if (memberMaps.Count == 0 && notOverridenPathMaps.Count == 0) { return; } memberMaps.ForEach(p => { AddPropertyMap(p); foreach (var transformer in typeMap.ValueTransformers) { p.AddValueTransformation(transformer); } }); _beforeMapActions.UnionWith(typeMap._beforeMapActions.Select(CheckCustomSource)); _afterMapActions.UnionWith(typeMap._afterMapActions.Select(CheckCustomSource)); notOverridenPathMaps.ForEach(p => AddPathMap(new PathMap(p, this, expression) { CustomMapExpression = CheckCustomSource(p.CustomMapExpression) })); return; LambdaExpression CheckCustomSource(LambdaExpression lambda) => PropertyMap.CheckCustomSource(lambda, expression); }
public void AddMemberMap(IncludedMember includedMember) => _includedMembersTypeMaps.Add(includedMember);