internal virtual SqlExpression VisitDiscriminatedType(SqlDiscriminatedType dt) { dt.Discriminator = this.VisitExpression(dt.Discriminator); return dt; }
internal override SqlExpression VisitDiscriminatedType(SqlDiscriminatedType dt) { if(_isDebugMode) { _commandStringBuilder.Append("DTYPE("); } base.VisitDiscriminatedType(dt); if(_isDebugMode) { _commandStringBuilder.Append(")"); } return dt; }
private Type GenerateDiscriminatedType(SqlDiscriminatedType dt) { Diagnostics.Debug.Assert(dt.ClrType == typeof(Type)); LocalBuilder locDiscriminator = gen.DeclareLocal(dt.Discriminator.ClrType); this.GenerateExpressionForType(dt.Discriminator, dt.Discriminator.ClrType); gen.Emit(OpCodes.Stloc, locDiscriminator); return this.GenerateDiscriminatedType(dt.TargetType, locDiscriminator, dt.Discriminator.SqlType); }
internal override SqlExpression VisitDiscriminatedType(SqlDiscriminatedType dt) { return new SqlDiscriminatedType(dt.SqlType, this.VisitExpression(dt.Discriminator), dt.TargetType, dt.SourceExpression); }