Skip to content

Commit 542b9c4

Browse files
committed
More analyzer fixes
1 parent e0391f8 commit 542b9c4

22 files changed

Lines changed: 80 additions & 181 deletions

src/RepoDb/Cachers/DbRuntimeSettingCache.cs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace RepoDb;
55
public static class DbRuntimeSettingCache
66
{
7-
private static readonly ConcurrentDictionary<int, DbRuntimeSetting> cache = new();
7+
private static readonly ConcurrentDictionary<(Type, string), DbRuntimeSetting> cache = new();
88

99
#region Helpers
1010

@@ -43,18 +43,13 @@ public static DbRuntimeSetting Get(IDbConnection connection, IDbTransaction? tra
4343
internal static DbRuntimeSetting GetInternal(IDbConnection connection,
4444
IDbTransaction? transaction)
4545
{
46-
var key = HashCode.Combine(connection.GetType(), connection.Database);
46+
var key = (connection.GetType(), connection.Database);
4747

4848
var result = cache.GetOrAdd(key,
4949
(_) => connection.GetDbHelper().GetDbConnectionRuntimeInformation(connection, transaction));
5050

5151
// Validate
52-
if (result is null)
53-
{
54-
throw new InvalidOperationException($"There is no database engine version available");
55-
}
56-
57-
return result;
52+
return result ?? throw new InvalidOperationException($"There is no database engine version available");
5853
}
5954

6055
#endregion
@@ -88,7 +83,7 @@ internal static async ValueTask<DbRuntimeSetting> GetInternalAsync(IDbConnection
8883
IDbTransaction? transaction,
8984
CancellationToken cancellationToken = default)
9085
{
91-
var key = HashCode.Combine(connection.GetType(), connection.Database);
86+
var key = (connection.GetType(), connection.Database);
9287

9388
// Try get the value
9489
if (cache.TryGetValue(key, out var result) == false)

src/RepoDb/Contexts/Providers/ExecutionContextProvider.cs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,14 @@ internal static class ExecutionContextProvider
2121
var primaryField = GetPrimaryAsReturnKeyField(entityType, dbFields);
2222
var identityField = GetIdentityAsReturnKeyField(entityType, dbFields);
2323

24-
switch (GlobalConfiguration.Options.KeyColumnReturnBehavior)
24+
return GlobalConfiguration.Options.KeyColumnReturnBehavior switch
2525
{
26-
case KeyColumnReturnBehavior.Primary:
27-
return primaryField;
28-
case KeyColumnReturnBehavior.Identity:
29-
return identityField;
30-
case KeyColumnReturnBehavior.PrimaryOrElseIdentity:
31-
return primaryField ?? identityField;
32-
case KeyColumnReturnBehavior.IdentityOrElsePrimary:
33-
return identityField ?? primaryField;
34-
default:
35-
throw new InvalidOperationException(nameof(GlobalConfiguration.Options.KeyColumnReturnBehavior));
36-
}
26+
KeyColumnReturnBehavior.Primary => primaryField,
27+
KeyColumnReturnBehavior.Identity => identityField,
28+
KeyColumnReturnBehavior.PrimaryOrElseIdentity => primaryField ?? identityField,
29+
KeyColumnReturnBehavior.IdentityOrElsePrimary => identityField ?? primaryField,
30+
_ => throw new InvalidOperationException(nameof(GlobalConfiguration.Options.KeyColumnReturnBehavior)),
31+
};
3732
}
3833

3934
/// <summary>

src/RepoDb/Extensions/StringExtension.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public static string AsUnquoted(this string value,
106106
AsUnquoted(value, false, dbSetting);
107107

108108
#if NET8_0_OR_GREATER
109-
static SearchValues<char> unquotedChars = SearchValues.Create(['`', '"', ' ', '[']);
109+
static readonly SearchValues<char> unquotedChars = SearchValues.Create(['`', '"', ' ', '[']);
110110
#endif
111111
/// <summary>
112112
/// Unquotes a string.

src/RepoDb/Operations/DbConnection/Average.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1279,7 +1279,7 @@ internal static async ValueTask<object> AverageInternalAsync<TEntity>(
12791279
statementBuilder);
12801280

12811281
// Converts to property mapped object
1282-
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>()) : null;
1282+
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>(), cancellationToken) : null;
12831283

12841284
// Return the result
12851285
return await AverageInternalBaseAsync<object>(connection: connection,
@@ -1730,7 +1730,7 @@ internal static async ValueTask<TResult> AverageInternalAsync<TEntity, TResult>(
17301730
statementBuilder);
17311731

17321732
// Converts to property mapped object
1733-
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>()) : null;
1733+
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>(), cancellationToken) : null;
17341734

17351735
// Return the result
17361736
return await AverageInternalBaseAsync<TResult>(connection: connection,
@@ -2346,7 +2346,7 @@ internal static async ValueTask<object> AverageInternalAsync(this IDbConnection
23462346
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo(null)], connection, transaction, tableName, cancellationToken) : null;
23472347

23482348
// Return the result
2349-
return AverageInternalBaseAsync<object>(connection: connection,
2349+
return await AverageInternalBaseAsync<object>(connection: connection,
23502350
request: request,
23512351
param: param,
23522352
commandTimeout: commandTimeout,
@@ -2558,7 +2558,7 @@ internal static async ValueTask<TResult> AverageInternalAsync<TResult>(this IDbC
25582558
statementBuilder);
25592559

25602560
// Converts to property mapped object
2561-
var param = (where != null) ? await QueryGroup.AsMappedObject([where.MapTo(null)], connection, transaction, tableName, cancellationToken) : null;
2561+
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo(null)], connection, transaction, tableName, cancellationToken) : null;
25622562

25632563
// Return the result
25642564
return await AverageInternalBaseAsync<TResult>(connection: connection,

src/RepoDb/Operations/DbConnection/Count.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ internal static async ValueTask<long> CountInternalAsync<TEntity>(this IDbConnec
451451
}
452452

453453
// Return the result
454-
return CountInternalBaseAsync(connection: connection,
454+
return await CountInternalBaseAsync(connection: connection,
455455
request: request,
456456
param: param,
457457
commandTimeout: commandTimeout,

src/RepoDb/Operations/DbConnection/Max.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1269,7 +1269,7 @@ internal static async ValueTask<object> MaxInternalAsync<TEntity>(this IDbConnec
12691269
statementBuilder);
12701270

12711271
// Converts to property mapped object
1272-
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>()) : null;
1272+
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>(), cancellationToken) : null;
12731273

12741274
// Return the result
12751275
return await MaxInternalBaseAsync<object>(connection: connection,

src/RepoDb/Operations/DbConnection/Merge.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -736,9 +736,6 @@ internal static TResult MergeInternal<TEntity, TResult>(
736736
ITrace? trace = null, IStatementBuilder? statementBuilder = null)
737737
where TEntity : class
738738
{
739-
// Variables needed
740-
var setting = connection.GetDbSetting();
741-
742739
// Return the result
743740
if (TypeCache.Get(GetEntityType(entity)).IsDictionaryStringObject() == true)
744741
{

src/RepoDb/Operations/DbConnection/Min.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1720,7 +1720,7 @@ internal static async ValueTask<TResult> MinInternalAsync<TEntity, TResult>(this
17201720
statementBuilder);
17211721

17221722
// Converts to property mapped object
1723-
var param = (where != null) ? await QueryGroup.AsMappedObject([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>(), cancellationToken) : null;
1723+
var param = (where != null) ? await QueryGroup.AsMappedObjectAsync([where.MapTo<TEntity>()], connection, transaction, ClassMappedNameCache.Get<TEntity>(), cancellationToken) : null;
17241724

17251725
// Return the result
17261726
return await MinInternalBaseAsync<TResult>(connection: connection,

0 commit comments

Comments
 (0)