Esempio n. 1
0
        protected internal override Expression VisitEntity(EntityExpression ee)
        {
            if (previousTypes.Contains(ee.Type) || IsCached(ee.Type) || ee.AvoidExpandOnRetrieving)
            {
                ee = new EntityExpression(ee.Type, ee.ExternalId, null, null, null, null, null /*ee.SystemPeriod TODO*/, ee.AvoidExpandOnRetrieving);
            }
            else
            {
                ee = binder.Completed(ee);
            }

            previousTypes = previousTypes.Push(ee.Type);

            var bindings = VisitBindings(ee.Bindings !);

            var mixins = Visit(ee.Mixins, VisitMixinEntity);

            var id = (PrimaryKeyExpression)Visit(ee.ExternalId);

            var result = new EntityExpression(ee.Type, id, ee.ExternalPeriod, ee.TableAlias, bindings, mixins, ee.TablePeriod, ee.AvoidExpandOnRetrieving);

            previousTypes = previousTypes.Pop();

            return(result);
        }