Skip to content

Commit d796465

Browse files
committed
Fixed SQLQueryCompiler extensions.
1 parent b22b7d2 commit d796465

File tree

5 files changed

+26
-24
lines changed

5 files changed

+26
-24
lines changed

Lib/CSQLQueryExpress/CSQLQueryExpress.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<Title>CSQLQueryExpress</Title>
6-
<Version>1.3.7</Version>
6+
<Version>1.3.8</Version>
77
<Description>A simple c# library to compile TSQL queries</Description>
88
<PackageProjectUrl></PackageProjectUrl>
99
<PackageReadmeFile>README.md</PackageReadmeFile>

Lib/CSQLQueryExpress/Compiler/SQLQueryCompiler.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ public static class SQLQueryCompiler
1313
/// <summary>
1414
/// Compile a <see cref="ISQLQuery"/> instance in a <see cref="SQLQueryCompiled"/>.
1515
/// </summary>
16-
/// <param name="query">SQL query expression built with <see cref="SQLQuery"/>,</param>
16+
/// <param name="query">SQL query expression built with <see cref="SQLQuery"/></param>
17+
/// <param name="settings">[OPTIONAL] SQL query compiler setting <see cref="SQLQueryCompilerSettings"/></param>
1718
/// <returns>A compiled expression <see cref="SQLQueryCompiled"/>.</returns>
18-
public static SQLQueryCompiled Compile(ISQLQuery query)
19+
public static SQLQueryCompiled Compile(ISQLQuery query, SQLQueryCompilerSettings settings = null)
1920
{
20-
var settings = new SQLQueryCompilerSettings();
21-
var parameterBuilder = new SQLQueryParametersBuilder(settings);
22-
var tableNameResolver = new SQLQueryTableNameResolver(settings);
21+
var compilerSettings = settings ?? new SQLQueryCompilerSettings();
22+
var parameterBuilder = new SQLQueryParametersBuilder(compilerSettings);
23+
var tableNameResolver = new SQLQueryTableNameResolver(compilerSettings);
2324

2425
return Compile(query, parameterBuilder, tableNameResolver);
2526
}

Lib/CSQLQueryExpress/Compiler/SQLQueryExtensions.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ public static class SQLQueryExtensions
55
/// <summary>
66
/// Compile a <see cref="ISQLQuery"/> instance in a <see cref="SQLQueryCompiled"/>.
77
/// </summary>
8-
/// <param name="query">SQL query expression built with <see cref="SQLQuery"/>,</param>
8+
/// <param name="query">SQL query expression built with <see cref="SQLQuery"/></param>
9+
/// <param name="settings">[OPTIONAL] SQL query compiler setting <see cref="SQLQueryCompilerSettings"/></param>
910
/// <returns>A compiled expression <see cref="SQLQueryCompiled"/>.</returns>
10-
public static SQLQueryCompiled Compile(this ISQLQuery query)
11+
public static SQLQueryCompiled Compile(this ISQLQuery query, SQLQueryCompilerSettings settings = null)
1112
{
12-
return SQLQueryCompiler.Compile(query);
13+
return SQLQueryCompiler.Compile(query, settings);
1314
}
1415

1516
/// <summary>

Lib/CSQLQueryExpress/Compiler/SQLQueryParametersBuilder.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
namespace CSQLQueryExpress
55
{
6-
internal class SQLQueryParametersBuilder : ISQLQueryParametersBuilder
6+
public sealed class SQLQueryParametersBuilder : ISQLQueryParametersBuilder
77
{
8-
public IDictionary<string, SQLQueryParameter> Parameters { get; } = new Dictionary<string, SQLQueryParameter>();
8+
IDictionary<string, SQLQueryParameter> ISQLQueryParametersBuilder.Parameters { get; } = new Dictionary<string, SQLQueryParameter>();
99

1010
private readonly SQLQueryCompilerSettings _settings;
1111

@@ -14,22 +14,22 @@ public SQLQueryParametersBuilder(SQLQueryCompilerSettings settings)
1414
_settings = settings;
1515
}
1616

17-
public void Initialize()
17+
void ISQLQueryParametersBuilder.Initialize()
1818
{
19-
Parameters.Clear();
19+
((ISQLQueryParametersBuilder)this).Parameters.Clear();
2020
}
2121

22-
public string AddParameter(object value)
22+
string ISQLQueryParametersBuilder.AddParameter(object value)
2323
{
24-
var parameterName = $"{_settings.QueryParameterPrefix}{Parameters.Count}";
25-
Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value));
24+
var parameterName = $"{_settings.QueryParameterPrefix}{((ISQLQueryParametersBuilder)this).Parameters.Count}";
25+
((ISQLQueryParametersBuilder)this).Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value));
2626
return parameterName;
2727
}
2828

29-
public string AddStoredProcedureParameter(string name, object value, SQLQueryParameterDirection direction)
29+
string ISQLQueryParametersBuilder.AddStoredProcedureParameter(string name, object value, SQLQueryParameterDirection direction)
3030
{
3131
var parameterName = $"{_settings.StoredProcedureParameterPrefix}{name}";
32-
Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value, direction));
32+
((ISQLQueryParametersBuilder)this).Parameters.Add(parameterName, new SQLQueryParameter(parameterName, value, direction));
3333
return parameterName;
3434
}
3535
}

Lib/CSQLQueryExpress/Compiler/SQLQueryTableNameResolver.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace CSQLQueryExpress
88
{
9-
internal class SQLQueryTableNameResolver : ISQLQueryTableNameResolver
9+
public sealed class SQLQueryTableNameResolver : ISQLQueryTableNameResolver
1010
{
1111
private readonly SQLQueryCompilerSettings _settings;
1212

@@ -19,13 +19,13 @@ public SQLQueryTableNameResolver(SQLQueryCompilerSettings settings)
1919
_settings = settings;
2020
}
2121

22-
public void Initialize()
22+
void ISQLQueryTableNameResolver.Initialize()
2323
{
2424
Alias.Clear();
2525
MembersTypes.Clear();
2626
}
2727

28-
public SQLQueryTableName ResolveTableName(Type objType)
28+
SQLQueryTableName ISQLQueryTableNameResolver.ResolveTableName(Type objType)
2929
{
3030
if (!Alias.TryGetValue(objType, out SQLQueryTableName alias))
3131
{
@@ -59,14 +59,14 @@ public SQLQueryTableName ResolveTableName(Type objType)
5959
return alias;
6060
}
6161

62-
public string ResolveTableNameAsAlias(Type objType)
62+
string ISQLQueryTableNameResolver.ResolveTableNameAsAlias(Type objType)
6363
{
64-
var tableAlias = ResolveTableName(objType);
64+
var tableAlias = ((ISQLQueryTableNameResolver)this).ResolveTableName(objType);
6565

6666
return $"{tableAlias.TableName} AS {tableAlias.TableAlias}";
6767
}
6868

69-
public string ResolveColumnName(Type objType, MemberInfo member)
69+
string ISQLQueryTableNameResolver.ResolveColumnName(Type objType, MemberInfo member)
7070
{
7171
if (!MembersTypes.TryGetValue(member.DeclaringType, out IDictionary<MemberInfo, string> members))
7272
{

0 commit comments

Comments
 (0)