Class SqlServer2025SqlExpressionConvertVisitor
- Namespace
- LinqToDB.Internal.DataProvider.SqlServer
- Assembly
- linq2db.dll
public class SqlServer2025SqlExpressionConvertVisitor : SqlServer2012SqlExpressionConvertVisitor
- Inheritance
-
objectSqlServer2025SqlExpressionConvertVisitor
- Inherited Members
- Extension Methods
Constructors
SqlServer2025SqlExpressionConvertVisitor(bool, SqlServerVersion)
public SqlServer2025SqlExpressionConvertVisitor(bool allowModify, SqlServerVersion sqlServerVersion)
Parameters
allowModifyboolsqlServerVersionSqlServerVersion
Properties
ConcatRequiresExplicitStringCast
When true (default), ConvertConcat(SqlConcatExpression) wraps every non-string
operand in an explicit CAST(... AS VARCHAR(N)) before adding it to the concat chain.
Required for providers whose concat operator is + (SQL Server pre-2025, SqlCe,
Access) — SQL-standard data-type precedence would otherwise try to coerce
string operands to the non-string side's type. Most providers whose final concat operator
is || (PostgreSQL / Oracle / SQLite / SAP HANA / DuckDB / Firebird / DB2 / Informix /
SQL Server 2025+) or CONCAT(...) function (MySQL / ClickHouse) auto-coerce
non-string operands and override this to false for cleaner SQL.
Sybase ASE is the exception: it emits || but keeps this true,
since ASE requires an explicit convert() for non-character operands under both
+ and ||.
protected override bool ConcatRequiresExplicitStringCast { get; }