コード例 #1
0
        public virtual IDictionary <IProperty, int> AddToProjection(EntityProjectionExpression entityProjectionExpression)
        {
            if (!_entityProjectionCache.TryGetValue(entityProjectionExpression, out var indexMap))
            {
                indexMap = new Dictionary <IProperty, int>();
                foreach (var property in GetAllPropertiesInHierarchy(entityProjectionExpression.EntityType))
                {
                    indexMap[property] = AddToProjection(entityProjectionExpression.BindProperty(property));
                }

                _entityProjectionCache[entityProjectionExpression] = indexMap;
            }

            return(indexMap);
        }
 private Expression BindProperty(EntityProjectionExpression entityProjectionExpression, IProperty property)
 {
     return(entityProjectionExpression.BindProperty(property));
 }