Skip to content

Commit 225ecdf

Browse files
[release] fix: dotnet warnings (#310)
1 parent 0be5676 commit 225ecdf

8 files changed

Lines changed: 31 additions & 16 deletions

File tree

Drivers/ColumnMapping.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class ColumnMapping(
1313
Func<string, bool, bool, string>? writerFn = null,
1414
Func<string, string>? convertFunc = null,
1515
string? sqlMapper = null,
16-
string? sqlMapperImpl = null)
16+
Func<bool, string>? sqlMapperImpl = null)
1717
{
1818
public Dictionary<string, DbTypeInfo> DbTypes { get; } = dbTypes;
1919
public Func<int, string> ReaderFn { get; } = readerFn;
@@ -22,5 +22,5 @@ public class ColumnMapping(
2222
public Func<string, bool, bool, string>? WriterFn { get; } = writerFn;
2323
public Func<string, string>? ConvertFunc { get; } = convertFunc;
2424
public string? SqlMapper { get; } = sqlMapper;
25-
public string? SqlMapperImpl { get; } = sqlMapperImpl;
25+
public Func<bool, string>? SqlMapperImpl { get; } = sqlMapperImpl;
2626
}

Drivers/DbDriver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ private MemberDeclarationSyntax[] GetSqlMapperMemberDeclarations()
187187
{
188188
return [.. ColumnMappings
189189
.Where(m => TypeExistsInQueries(m.Key) && m.Value.SqlMapperImpl is not null)
190-
.Select(m => ParseMemberDeclaration(m.Value.SqlMapperImpl!)!)];
190+
.Select(m => ParseMemberDeclaration(m.Value.SqlMapperImpl!(Options.DotnetFramework.IsDotnetCore()))!)];
191191
}
192192

193193
public abstract string TransformQueryText(Query query);

Drivers/MySqlConnectorDriver.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public sealed partial class MySqlConnectorDriver(
156156

157157
public override string TransactionClassName => "MySqlTransaction";
158158

159-
private const string JsonElementTypeHandler = """
159+
private static readonly Func<bool, string> JsonElementTypeHandler = _ => $$"""
160160
private class JsonElementTypeHandler : SqlMapper.TypeHandler<JsonElement>
161161
{
162162
public override JsonElement Parse(object value)
@@ -291,7 +291,8 @@ public override MemberDeclarationSyntax[] GetEnumExtensionsMembers(string name,
291291

292292
private MemberDeclarationSyntax[] GetSetTypeHandlers()
293293
{
294-
var setTypeHandlerFunc = (string x) =>
294+
var optionalNullableSuffix = Options.DotnetFramework.IsDotnetCore() ? "?" : string.Empty;
295+
string setTypeHandlerFunc(string x) =>
295296
$$"""
296297
private class {{x}}TypeHandler : SqlMapper.TypeHandler<HashSet<{{x}}>>
297298
{
@@ -302,14 +303,16 @@ private class {{x}}TypeHandler : SqlMapper.TypeHandler<HashSet<{{x}}>>
302303
throw new DataException($"Cannot convert {value?.GetType()} to HashSet<{{x}}>");
303304
}
304305
305-
public override void SetValue(IDbDataParameter parameter, HashSet<{{x}}> value)
306+
public override void SetValue(IDbDataParameter parameter, HashSet<{{x}}>{{optionalNullableSuffix}} value)
306307
{
308+
if (value is null)
309+
return;
307310
parameter.Value = string.Join(",", value);
308311
}
309312
}
310313
""";
311314

312-
return Queries
315+
return [.. Queries
313316
.SelectMany(q => q.Columns)
314317
.Where(c =>
315318
{
@@ -318,8 +321,7 @@ public override void SetValue(IDbDataParameter parameter, HashSet<{{x}}> value)
318321
})
319322
.Select(c => setTypeHandlerFunc(EnumToModelName(c)))
320323
.Distinct()
321-
.Select(m => ParseMemberDeclaration(m)!)
322-
.ToArray();
324+
.Select(m => ParseMemberDeclaration(m)!)];
323325
}
324326

325327
public override MemberDeclarationSyntax[] GetMemberDeclarationsForUtils()

Drivers/NpgsqlDriver.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ public NpgsqlDriver(
345345

346346
public override string TransactionClassName => "NpgsqlTransaction";
347347

348-
private const string JsonElementTypeHandler = """
348+
private static readonly Func<bool, string> JsonElementTypeHandler = _ => $$"""
349349
private class JsonElementTypeHandler : SqlMapper.TypeHandler<JsonElement>
350350
{
351351
public override JsonElement Parse(object value)
@@ -362,8 +362,7 @@ public override void SetValue(IDbDataParameter parameter, JsonElement value)
362362
}
363363
""";
364364

365-
private const string XmlDocumentTypeHandler =
366-
"""
365+
private static readonly Func<bool, string> XmlDocumentTypeHandler = isDotnetCore => $$"""
367366
private class XmlDocumentTypeHandler : SqlMapper.TypeHandler<XmlDocument>
368367
{
369368
public override XmlDocument Parse(object value)
@@ -377,8 +376,10 @@ public override XmlDocument Parse(object value)
377376
throw new DataException($"Cannot convert {value?.GetType()} to XmlDocument");
378377
}
379378
380-
public override void SetValue(IDbDataParameter parameter, XmlDocument value)
379+
public override void SetValue(IDbDataParameter parameter, XmlDocument{{(isDotnetCore ? "?" : string.Empty)}} value)
381380
{
381+
if (value is null)
382+
return;
382383
parameter.Value = value.OuterXml;
383384
}
384385
}

examples/MySqlConnectorDapperExample/Utils.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,10 @@ public override HashSet<BiosAuthorType> Parse(object value)
4848
throw new DataException($"Cannot convert {value?.GetType()} to HashSet<BiosAuthorType>");
4949
}
5050

51-
public override void SetValue(IDbDataParameter parameter, HashSet<BiosAuthorType> value)
51+
public override void SetValue(IDbDataParameter parameter, HashSet<BiosAuthorType>? value)
5252
{
53+
if (value is null)
54+
return;
5355
parameter.Value = string.Join(",", value);
5456
}
5557
}
@@ -63,8 +65,10 @@ public override HashSet<MysqlStringTypesCSet> Parse(object value)
6365
throw new DataException($"Cannot convert {value?.GetType()} to HashSet<MysqlStringTypesCSet>");
6466
}
6567

66-
public override void SetValue(IDbDataParameter parameter, HashSet<MysqlStringTypesCSet> value)
68+
public override void SetValue(IDbDataParameter parameter, HashSet<MysqlStringTypesCSet>? value)
6769
{
70+
if (value is null)
71+
return;
6872
parameter.Value = string.Join(",", value);
6973
}
7074
}

examples/MySqlConnectorDapperLegacyExample/Utils.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public override HashSet<BiosAuthorType> Parse(object value)
5151

5252
public override void SetValue(IDbDataParameter parameter, HashSet<BiosAuthorType> value)
5353
{
54+
if (value is null)
55+
return;
5456
parameter.Value = string.Join(",", value);
5557
}
5658
}
@@ -66,6 +68,8 @@ public override HashSet<MysqlStringTypesCSet> Parse(object value)
6668

6769
public override void SetValue(IDbDataParameter parameter, HashSet<MysqlStringTypesCSet> value)
6870
{
71+
if (value is null)
72+
return;
6973
parameter.Value = string.Join(",", value);
7074
}
7175
}

examples/NpgsqlDapperExample/Utils.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@ public override XmlDocument Parse(object value)
4040
throw new DataException($"Cannot convert {value?.GetType()} to XmlDocument");
4141
}
4242

43-
public override void SetValue(IDbDataParameter parameter, XmlDocument value)
43+
public override void SetValue(IDbDataParameter parameter, XmlDocument? value)
4444
{
45+
if (value is null)
46+
return;
4547
parameter.Value = value.OuterXml;
4648
}
4749
}

examples/NpgsqlDapperLegacyExample/Utils.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ public override XmlDocument Parse(object value)
4343

4444
public override void SetValue(IDbDataParameter parameter, XmlDocument value)
4545
{
46+
if (value is null)
47+
return;
4648
parameter.Value = value.OuterXml;
4749
}
4850
}

0 commit comments

Comments
 (0)