public ObjectMapperKeyBase CreateRootKeyFor <TSource, TTarget>(ObjectMappingData <TSource, TTarget> mappingData)
 {
     return(new RootObjectMapperKey(mappingData.MappingTypes, mappingData.MappingContext)
     {
         MappingData = mappingData
     });
 }
        public ObjectMapperKeyBase CreateRootKeyFor <TSource, TTarget>(ObjectMappingData <TSource, TTarget> mappingData)
        {
            var providerType = ((IQueryable)mappingData.Source).Provider.GetType();

            return(new QueryProjectorKey(mappingData.MappingTypes, providerType, mappingData.MapperContext)
            {
                MappingData = mappingData
            });
        }
        private void EnsureFunc(ObjectMappingData <TChildSource, TChildTarget> mappingData)
        {
            if (_repeatedMappingFunc != null)
            {
                return;
            }

            lock (_mappingFuncLock)
            {
                if (_repeatedMappingFunc != null)
                {
                    return;
                }

                mappingData.MapperData = _mapperData;

                CreateMapperFunc(mappingData, isLazyLoading: true);
            }
        }