@@ -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 ( )
0 commit comments