public EntityExpression(Type type, PrimaryKeyExpression externalId, Alias tableAlias, IEnumerable <FieldBinding> bindings, IEnumerable <MixinEntityExpression> mixins, bool avoidExpandOnRetrieving)
            : base(DbExpressionType.Entity, type)
        {
            if (type == null)
            {
                throw new ArgumentNullException("type");
            }

            if (!type.IsEntity())
            {
                throw new ArgumentException("type");
            }

            if (externalId == null)
            {
                throw new ArgumentNullException("externalId");
            }

            this.Table      = Schema.Current.Table(type);
            this.ExternalId = externalId;

            this.TableAlias = tableAlias;
            this.Bindings   = bindings.ToReadOnly();
            this.Mixins     = mixins.ToReadOnly();

            this.AvoidExpandOnRetrieving = avoidExpandOnRetrieving;
        }
Example #2
0
 public AdditionalFieldExpression(Type type, PrimaryKeyExpression backID, IntervalExpression?externalPeriod, PropertyRoute route)
     : base(DbExpressionType.AdditionalField, type)
 {
     this.BackID         = backID;
     this.Route          = route;
     this.ExternalPeriod = externalPeriod;
 }
Example #3
0
 public MListExpression(Type type, PrimaryKeyExpression backID, IntervalExpression?externalPeriod, TableMList tr)
     : base(DbExpressionType.MList, type)
 {
     this.BackID         = backID;
     this.ExternalPeriod = externalPeriod;
     this.TableMList     = tr;
 }
 public MListElementExpression(PrimaryKeyExpression rowId, EntityExpression parent, Expression order, Expression element, TableMList table)
     : base(DbExpressionType.MListElement, typeof(MListElement <,>).MakeGenericType(parent.Type, element.Type))
 {
     this.RowId   = rowId;
     this.Parent  = parent;
     this.Order   = order;
     this.Element = element;
     this.Table   = table;
 }
        public TypeImplementedByAllExpression(PrimaryKeyExpression typeColumn)
            : base(DbExpressionType.TypeImplementedByAll, typeof(Type))
        {
            if (typeColumn == null)
            {
                throw new ArgumentException("typeId");
            }

            this.TypeColumn = typeColumn;
        }
Example #6
0
        protected internal virtual Expression VisitPrimaryKey(PrimaryKeyExpression pk)
        {
            var e = Visit(pk.Value);

            if (e == pk.Value)
            {
                return(pk);
            }

            return(new PrimaryKeyExpression(e));
        }
Example #7
0
 public MListElementExpression(PrimaryKeyExpression rowId, EntityExpression parent, Expression?order, Expression element, IntervalExpression?systemPeriod, TableMList table, Alias alias)
     : base(DbExpressionType.MListElement, typeof(MListElement <,>).MakeGenericType(parent.Type, element.Type))
 {
     this.RowId       = rowId;
     this.Parent      = parent;
     this.Order       = order;
     this.Element     = element;
     this.TablePeriod = systemPeriod;
     this.Table       = table;
     this.Alias       = alias;
 }
        public TypeEntityExpression(PrimaryKeyExpression externalId, Type typeValue)
            : base(DbExpressionType.TypeEntity, typeof(Type))
        {
            if (externalId == null)
            {
                throw new ArgumentException("externalId");
            }

            if (typeValue == null)
            {
                throw new ArgumentException("typeValue");
            }

            this.TypeValue  = typeValue;
            this.ExternalId = externalId;
        }
Example #9
0
        public EntityExpression(Type type, PrimaryKeyExpression externalId, Alias tableAlias, IEnumerable<FieldBinding> bindings, IEnumerable<MixinEntityExpression> mixins, bool avoidExpandOnRetrieving)
            : base(DbExpressionType.Entity, type)
        {
            if (type == null) 
                throw new ArgumentNullException("type");

            if (!type.IsEntity())
                throw new ArgumentException("type");
            
            if (externalId == null) 
                throw new ArgumentNullException("externalId");
            
            this.Table = Schema.Current.Table(type);
            this.ExternalId = externalId;

            this.TableAlias = tableAlias;
            this.Bindings = bindings.ToReadOnly();
            this.Mixins = mixins.ToReadOnly();

            this.AvoidExpandOnRetrieving = avoidExpandOnRetrieving;
        }
            protected internal override Expression VisitPrimaryKey(PrimaryKeyExpression pk)
            {
                var val = Visit(pk.Value);

                return(Expression.Call(miWrap, Expression.Convert(val, typeof(IComparable))));
            }
 public AdditionalFieldExpression(Type type, PrimaryKeyExpression backID, PropertyRoute route)
     : base(DbExpressionType.AdditionalField, type)
 {
     this.BackID = backID;
     this.Route  = route;
 }
Example #12
0
 public EntityContextInfo(PrimaryKeyExpression entityId, PrimaryKeyExpression?mlistRowId)
 {
     EntityId   = entityId;
     MListRowId = mlistRowId;
 }
Example #13
0
 public MListElementExpression(PrimaryKeyExpression rowId, EntityExpression parent, Expression order, Expression element, TableMList table)
     : base(DbExpressionType.MListElement, typeof(MListElement<,>).MakeGenericType(parent.Type, element.Type))
 {
     this.RowId = rowId;
     this.Parent = parent;
     this.Order = order;
     this.Element = element;
     this.Table = table;
 }
Example #14
0
        public TypeImplementedByAllExpression(PrimaryKeyExpression typeColumn)
            : base(DbExpressionType.TypeImplementedByAll, typeof(Type))
        {
            if (typeColumn == null)
                throw new ArgumentException("typeId");

            this.TypeColumn = typeColumn;
        }
Example #15
0
 protected virtual bool ComparePrimaryKey(PrimaryKeyExpression a, PrimaryKeyExpression b)
 {
     return(Compare(a.Value, b.Value));
 }
Example #16
0
 static Expression NotEqualToNull(PrimaryKeyExpression exp)
 {
     return NotEqualNullable(exp.Value, new SqlConstantExpression(null, exp.ValueType));
 }
 public MListExpression(Type type, PrimaryKeyExpression backID, TableMList tr)
     : base(DbExpressionType.MList, type)
 {
     this.BackID     = backID;
     this.TableMList = tr;
 }
Example #18
0
 static Expression NotEqualToNull(PrimaryKeyExpression exp)
 {
     return(NotEqualNullable(exp.Value, new SqlConstantExpression(null, exp.ValueType)));
 }
Example #19
0
        public TypeEntityExpression(PrimaryKeyExpression externalId, Type typeValue)
            : base(DbExpressionType.TypeEntity, typeof(Type))
        {
            if (externalId == null)
                throw new ArgumentException("externalId");

            if (typeValue == null)
                throw new ArgumentException("typeValue"); 

            this.TypeValue = typeValue;
            this.ExternalId = externalId;
        }