@@ -169,8 +169,18 @@ protected override Expression VisitSqlParameter(SqlParameterExpression sqlParame
169169 Sql . Append ( " AS " ) ;
170170 if ( sqlParameterExpression . Type == typeof ( string ) )
171171 {
172- var isUnicode = FbTypeMappingSource . IsUnicode ( sqlParameterExpression . TypeMapping ) ;
173- Sql . Append ( ( ( IFbSqlGenerationHelper ) Dependencies . SqlGenerationHelper ) . StringParameterQueryType ( isUnicode ) ) ;
172+ var storeTypeNameBase = sqlParameterExpression . TypeMapping . StoreTypeNameBase ;
173+ var size = sqlParameterExpression . TypeMapping . Size ;
174+
175+ if ( storeTypeNameBase != null && size != null )
176+ {
177+ Sql . Append ( $ "{ storeTypeNameBase } ({ size } )") ;
178+ }
179+ else
180+ {
181+ var isUnicode = FbTypeMappingSource . IsUnicode ( sqlParameterExpression . TypeMapping ) ;
182+ Sql . Append ( ( ( IFbSqlGenerationHelper ) Dependencies . SqlGenerationHelper ) . StringParameterQueryType ( isUnicode ) ) ;
183+ }
174184 }
175185 else
176186 {
@@ -191,9 +201,19 @@ protected override Expression VisitSqlConstant(SqlConstantExpression sqlConstant
191201 base . VisitSqlConstant ( sqlConstantExpression ) ;
192202 if ( shouldExplicitStringLiteralTypes )
193203 {
194- var isUnicode = FbTypeMappingSource . IsUnicode ( sqlConstantExpression . TypeMapping ) ;
195- Sql . Append ( " AS " ) ;
196- Sql . Append ( ( ( IFbSqlGenerationHelper ) Dependencies . SqlGenerationHelper ) . StringLiteralQueryType ( sqlConstantExpression . Value as string , isUnicode ) ) ;
204+ var storeTypeNameBase = sqlConstantExpression . TypeMapping . StoreTypeNameBase ;
205+ var size = sqlConstantExpression . TypeMapping . Size ;
206+
207+ if ( storeTypeNameBase != null && size != null )
208+ {
209+ Sql . Append ( $ "{ storeTypeNameBase } ({ size } )") ;
210+ }
211+ else
212+ {
213+ var isUnicode = FbTypeMappingSource . IsUnicode ( sqlConstantExpression . TypeMapping ) ;
214+ Sql . Append ( " AS " ) ;
215+ Sql . Append ( ( ( IFbSqlGenerationHelper ) Dependencies . SqlGenerationHelper ) . StringLiteralQueryType ( sqlConstantExpression . Value as string , isUnicode ) ) ;
216+ }
197217 Sql . Append ( ")" ) ;
198218 }
199219 return sqlConstantExpression ;
0 commit comments