Example #1
0
        private static Expression TypeConstantIbaEquals(ConstantExpression ce, TypeImplementedByAllExpression typeIba)
        {
            if (ce.IsNull())
            {
                return(EqualsToNull(typeIba.TypeColumn));
            }

            return(EqualNullable(QueryBinder.TypeConstant((Type)ce.Value !), typeIba.TypeColumn.Value));
        }
Example #2
0
        protected internal virtual Expression VisitTypeImplementedByAll(TypeImplementedByAllExpression typeIba)
        {
            var column = (PrimaryKeyExpression)Visit(typeIba.TypeColumn);

            if (column != typeIba.TypeColumn)
            {
                return(new TypeImplementedByAllExpression(column));
            }

            return(typeIba);
        }
        public ImplementedByAllExpression(Type type, Expression id, TypeImplementedByAllExpression typeId)
            : base(DbExpressionType.ImplementedByAll, type)
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }

            if (id.Type != typeof(string))
            {
                throw new ArgumentException("string");
            }
            this.Id     = id;
            this.TypeId = typeId ?? throw new ArgumentNullException("typeId");
        }
        public PrimaryKeyStringExpression(Expression id, TypeImplementedByAllExpression typeId)
            : base(DbExpressionType.PrimaryKeyString, typeof(PrimaryKey?))
        {
            if (id == null)
            {
                throw new ArgumentNullException("id");
            }

            if (id.Type != typeof(string))
            {
                throw new ArgumentException("id should be a string");
            }

            this.Id     = id;
            this.TypeId = typeId ?? throw new ArgumentNullException("typeId");
        }
Example #5
0
        public ImplementedByAllExpression(Type type, Expression id, TypeImplementedByAllExpression typeId, IntervalExpression?externalPeriod)
            : base(DbExpressionType.ImplementedByAll, type)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (id.Type != typeof(string))
            {
                throw new ArgumentException("string");
            }
            this.Id             = id;
            this.TypeId         = typeId ?? throw new ArgumentNullException(nameof(typeId));
            this.ExternalPeriod = externalPeriod;
        }
Example #6
0
 protected internal override Expression VisitTypeImplementedByAll(TypeImplementedByAllExpression typeIba)
 {
     throw InvalidSqlExpression(typeIba);
 }
Example #7
0
 protected virtual bool CompareTypeImplementedByAll(TypeImplementedByAllExpression a, TypeImplementedByAllExpression b)
 {
     return(Compare(a.TypeColumn, b.TypeColumn));
 }
 private MethodCallExpression SchemaGetType(TypeImplementedByAllExpression typeIba)
 {
     return(Expression.Call(Expression.Constant(Schema.Current), miGetType, Visit(typeIba.TypeColumn).UnNullify()));
 }
Example #9
0
        public ImplementedByAllExpression(Type type, Expression id, TypeImplementedByAllExpression typeId)
            : base(DbExpressionType.ImplementedByAll, type)
        {
            if (id == null)
                throw new ArgumentNullException("id");

            if (id.Type != typeof(string))
                throw new ArgumentException("string");

            if (typeId == null)
                throw new ArgumentNullException("typeId");

            this.Id = id;
            this.TypeId = typeId;
        }
Example #10
0
 private static Expression TypeIbaIbaEquals(TypeImplementedByAllExpression t1, TypeImplementedByAllExpression t2)
 {
     return(Expression.Equal(t1.TypeColumn, t2.TypeColumn));
 }
Example #11
0
 private static Expression TypeIbaIbaEquals(TypeImplementedByAllExpression t1, TypeImplementedByAllExpression t2)
 {
     return Expression.Equal(t1.TypeColumn, t2.TypeColumn);
 }
Example #12
0
 private static Expression TypeFieIbaEquals(TypeEntityExpression typeFie, TypeImplementedByAllExpression typeIba)
 {
     return Expression.And(NotEqualToNull(typeFie.ExternalId), EqualNullable(typeIba.TypeColumn, QueryBinder.TypeConstant(typeFie.TypeValue)));
 }
Example #13
0
        private static Expression TypeConstantIbaEquals(ConstantExpression ce, TypeImplementedByAllExpression typeIba)
        {
            if (ce.IsNull())
                return EqualsToNull(typeIba.TypeColumn);

            return EqualNullable(QueryBinder.TypeConstant((Type)ce.Value), typeIba.TypeColumn.Value);
        }
Example #14
0
        protected virtual Expression VisitTypeImplementedByAll(TypeImplementedByAllExpression typeIba)
        {
            var column = Visit(typeIba.TypeColumn);

            if (column != typeIba.TypeColumn)
                return new TypeImplementedByAllExpression(column);

            return typeIba;
        }
Example #15
0
        public PrimaryKeyStringExpression(Expression id, TypeImplementedByAllExpression typeId)
            : base(DbExpressionType.PrimaryKeyString, typeof(PrimaryKey?))
        {
            if (id == null)
                throw new ArgumentNullException("id");

            if(id.Type != typeof(string))
                throw new ArgumentException("id should be a string");

            if(typeId == null)
                throw new ArgumentNullException("typeId");

            this.Id = id;
            this.TypeId = typeId;
        }
Example #16
0
 private static Expression TypeIbIbaEquals(TypeImplementedByExpression typeIb, TypeImplementedByAllExpression typeIba)
 {
     return typeIb.TypeImplementations
         .Select(imp => Expression.And(NotEqualToNull(imp.Value), EqualNullable(typeIba.TypeColumn, QueryBinder.TypeConstant(imp.Key))))
         .AggregateOr();
 }
Example #17
0
 private static Expression TypeFieIbaEquals(TypeEntityExpression typeFie, TypeImplementedByAllExpression typeIba)
 {
     return(Expression.And(NotEqualToNull(typeFie.ExternalId), EqualNullable(typeIba.TypeColumn, QueryBinder.TypeConstant(typeFie.TypeValue))));
 }
Example #18
0
 public ImplementedByAllExpression(Type type, Expression id, TypeImplementedByAllExpression typeId)
     : base(DbExpressionType.ImplementedByAll, type)
 {
     this.Id = id;
     this.TypeId = typeId;
 }
Example #19
0
 private static Expression TypeIbIbaEquals(TypeImplementedByExpression typeIb, TypeImplementedByAllExpression typeIba)
 {
     return(typeIb.TypeImplementations
            .Select(imp => Expression.And(NotEqualToNull(imp.Value), EqualNullable(typeIba.TypeColumn, QueryBinder.TypeConstant(imp.Key))))
            .AggregateOr());
 }
Example #20
0
 protected override Expression VisitTypeImplementedByAll(TypeImplementedByAllExpression typeIba)
 {
     throw InvalidSqlExpression(typeIba);
 }