コード例 #1
0
 protected internal override Expression VisitTypeFieldInit(TypeEntityExpression typeFie)
 {
     return(Expression.Condition(
                Expression.NotEqual(Visit(NullifyColumn(typeFie.ExternalId)), NullId),
                Expression.Constant(typeFie.TypeValue, typeof(Type)),
                NullType));
 }
コード例 #2
0
        private static Expression TypeFieFieEquals(TypeEntityExpression typeFie1, TypeEntityExpression typeFie2)
        {
            if (typeFie1.TypeValue != typeFie2.TypeValue)
            {
                return(False);
            }

            return(Expression.And(NotEqualToNull(typeFie1.ExternalId), NotEqualToNull(typeFie2.ExternalId)));
        }
コード例 #3
0
        protected internal virtual Expression VisitTypeEntity(TypeEntityExpression typeFie)
        {
            var externalId = (PrimaryKeyExpression)Visit(typeFie.ExternalId);

            if (externalId != typeFie.ExternalId)
            {
                return(new TypeEntityExpression(externalId, typeFie.TypeValue));
            }

            return(typeFie);
        }
コード例 #4
0
        private static Expression TypeFieIbEquals(TypeEntityExpression typeFie, TypeImplementedByExpression typeIb)
        {
            var externalId = typeIb.TypeImplementations.TryGetC(typeFie.TypeValue);

            if (externalId == null)
            {
                return(False);
            }

            return(Expression.And(NotEqualToNull(typeFie.ExternalId), NotEqualToNull(externalId)));
        }
コード例 #5
0
        private static Expression TypeConstantFieEquals(ConstantExpression ce, TypeEntityExpression typeFie)
        {
            if (ce.IsNull())
            {
                return(EqualsToNull(typeFie.ExternalId));
            }

            if (((Type)ce.Value == typeFie.TypeValue))
            {
                return(NotEqualToNull(typeFie.ExternalId));
            }

            return(False);
        }
コード例 #6
0
ファイル: EntityCompleter.cs プロジェクト: hua7073/framework
        private bool IsCacheable(Expression newTypeId)
        {
            TypeEntityExpression tfie = newTypeId as TypeEntityExpression;

            if (tfie != null)
            {
                return(IsCached(tfie.TypeValue));
            }

            TypeImplementedByExpression tibe = newTypeId as TypeImplementedByExpression;

            if (tibe != null)
            {
                return(tibe.TypeImplementations.All(t => IsCached(t.Key)));
            }

            return(false);
        }
コード例 #7
0
 protected internal override Expression VisitTypeEntity(TypeEntityExpression typeFie)
 {
     throw InvalidSqlExpression(typeFie);
 }
コード例 #8
0
 protected virtual bool CompareTypeFieldInit(TypeEntityExpression a, TypeEntityExpression b)
 {
     return(a.TypeValue == b.TypeValue &&
            Compare(a.ExternalId, b.ExternalId));
 }
コード例 #9
0
 protected internal override Expression VisitTypeFieldInit(TypeEntityExpression typeFie)
 {
     return(base.VisitTypeFieldInit(typeFie));
 }
コード例 #10
0
ファイル: SmartEqualizer.cs プロジェクト: rondoo/framework
 private static Expression TypeFieIbaEquals(TypeEntityExpression typeFie, TypeImplementedByAllExpression typeIba)
 {
     return Expression.And(NotEqualToNull(typeFie.ExternalId), EqualNullable(typeIba.TypeColumn, QueryBinder.TypeConstant(typeFie.TypeValue)));
 }
コード例 #11
0
ファイル: SmartEqualizer.cs プロジェクト: rondoo/framework
        private static Expression TypeFieIbEquals(TypeEntityExpression typeFie, TypeImplementedByExpression typeIb)
        {
            var externalId = typeIb.TypeImplementations.TryGetC(typeFie.TypeValue);

            if (externalId == null)
                return False;

            return Expression.And(NotEqualToNull(typeFie.ExternalId), NotEqualToNull(externalId));
        }
コード例 #12
0
ファイル: SmartEqualizer.cs プロジェクト: rondoo/framework
        private static Expression TypeFieFieEquals(TypeEntityExpression typeFie1, TypeEntityExpression typeFie2)
        {
            if (typeFie1.TypeValue != typeFie2.TypeValue)
                return False;

            return Expression.And(NotEqualToNull(typeFie1.ExternalId), NotEqualToNull(typeFie2.ExternalId));
        }
コード例 #13
0
ファイル: SmartEqualizer.cs プロジェクト: rondoo/framework
        private static Expression TypeConstantFieEquals(ConstantExpression ce, TypeEntityExpression typeFie)
        {
            if (ce.IsNull())
                return EqualsToNull(typeFie.ExternalId);

            if (((Type)ce.Value == typeFie.TypeValue))
                return NotEqualToNull(typeFie.ExternalId);

            return False;
        }
コード例 #14
0
        protected virtual Expression VisitTypeFieldInit(TypeEntityExpression typeFie)
        {
            var externalId = Visit(typeFie.ExternalId);

            if (externalId != typeFie.ExternalId)
                return new TypeEntityExpression(externalId, typeFie.TypeValue);

            return typeFie;
        }
コード例 #15
0
 protected override Expression VisitTypeFieldInit(TypeEntityExpression typeFie)
 {
     return base.VisitTypeFieldInit(typeFie);
 }
コード例 #16
0
 private static Expression TypeFieIbaEquals(TypeEntityExpression typeFie, TypeImplementedByAllExpression typeIba)
 {
     return(Expression.And(NotEqualToNull(typeFie.ExternalId), EqualNullable(typeIba.TypeColumn, QueryBinder.TypeConstant(typeFie.TypeValue))));
 }
コード例 #17
0
ファイル: QueryFormatter.cs プロジェクト: nuub666/framework
 protected override Expression VisitTypeFieldInit(TypeEntityExpression typeFie)
 {
     throw InvalidSqlExpression(typeFie);
 }