Skip to content

Commit a0525ab

Browse files
committed
fix build error
1 parent 776a927 commit a0525ab

File tree

3 files changed

+19
-27
lines changed

3 files changed

+19
-27
lines changed

src/FirebirdSql.EntityFrameworkCore.Firebird/Query/Internal/FbQuerySqlGenerator.cs

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -171,16 +171,9 @@ protected override Expression VisitSqlParameter(SqlParameterExpression sqlParame
171171
{
172172
var storeTypeNameBase = sqlParameterExpression.TypeMapping.StoreTypeNameBase;
173173
var size = sqlParameterExpression.TypeMapping.Size;
174+
var isUnicode = FbTypeMappingSource.IsUnicode(sqlParameterExpression.TypeMapping);
174175

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-
}
176+
Sql.Append(((IFbSqlGenerationHelper)Dependencies.SqlGenerationHelper).StringParameterQueryType(isUnicode, storeTypeNameBase, size));
184177
}
185178
else
186179
{
@@ -203,17 +196,14 @@ protected override Expression VisitSqlConstant(SqlConstantExpression sqlConstant
203196
{
204197
var storeTypeNameBase = sqlConstantExpression.TypeMapping.StoreTypeNameBase;
205198
var size = sqlConstantExpression.TypeMapping.Size;
199+
var isUnicode = FbTypeMappingSource.IsUnicode(sqlConstantExpression.TypeMapping);
206200

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-
}
201+
Sql.Append(" AS ");
202+
Sql.Append(((IFbSqlGenerationHelper)Dependencies.SqlGenerationHelper).StringLiteralQueryType(
203+
sqlConstantExpression.Value as string,
204+
isUnicode,
205+
storeTypeNameBase,
206+
size));
217207
Sql.Append(")");
218208
}
219209
return sqlConstantExpression;

src/FirebirdSql.EntityFrameworkCore.Firebird/Storage/Internal/FbSqlGenerationHelper.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,19 @@ public FbSqlGenerationHelper(RelationalSqlGenerationHelperDependencies dependenc
2727
: base(dependencies)
2828
{ }
2929

30-
public virtual string StringLiteralQueryType(string s, bool isUnicode = true)
30+
public virtual string StringLiteralQueryType(string s, bool isUnicode = true, string? storeTypeNameBase = null, int? size = null)
3131
{
32-
var length = MinimumStringQueryTypeLength(s);
32+
var length = size ?? MinimumStringQueryTypeLength(s);
3333
var charset = isUnicode ? " CHARACTER SET UTF8" : string.Empty;
34-
return $"VARCHAR({length}){charset}";
34+
var storeTypeName = storeTypeNameBase ?? "VARCHAR";
35+
return $"{storeTypeName}({length}){charset}";
3536
}
3637

37-
public virtual string StringParameterQueryType(bool isUnicode)
38+
public virtual string StringParameterQueryType(bool isUnicode, string? storeTypeNameBase = null, int? size = null)
3839
{
39-
var size = isUnicode ? FbTypeMappingSource.UnicodeVarcharMaxSize : FbTypeMappingSource.VarcharMaxSize;
40-
return $"VARCHAR({size})";
40+
var maxSize = size ?? (isUnicode ? FbTypeMappingSource.UnicodeVarcharMaxSize : FbTypeMappingSource.VarcharMaxSize);
41+
var storeTypeName = storeTypeNameBase ?? "VARCHAR";
42+
return $"{storeTypeName}({size})";
4143
}
4244

4345
public virtual void GenerateBlockParameterName(StringBuilder builder, string name)

src/FirebirdSql.EntityFrameworkCore.Firebird/Storage/Internal/IFbSqlGenerationHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ namespace FirebirdSql.EntityFrameworkCore.Firebird.Storage.Internal;
2222

2323
public interface IFbSqlGenerationHelper : ISqlGenerationHelper
2424
{
25-
string StringLiteralQueryType(string s, bool isUnicode);
26-
string StringParameterQueryType(bool isUnicode);
25+
string StringLiteralQueryType(string s, bool isUnicode, string? storeTypeNameBase = null, int? size = null);
26+
string StringParameterQueryType(bool isUnicode, string? storeTypeNameBase = null, int? size = null);
2727
void GenerateBlockParameterName(StringBuilder builder, string name);
2828
string AlternativeStatementTerminator { get; }
2929
}

0 commit comments

Comments
 (0)