@@ -10,24 +10,24 @@ namespace SqlcGenCsharp.Generators;
1010
1111internal class DataClassesGen ( DbDriver dbDriver )
1212{
13- public MemberDeclarationSyntax Generate ( string name , ClassMember ? classMember , IList < Column > columns , Options options )
13+ public MemberDeclarationSyntax Generate ( string name , ClassMember ? classMember , IList < Column > columns , Options options , Query ? query )
1414 {
1515 var className = classMember is null ? name : classMember . Value . Name ( name ) ;
1616 if ( options . DotnetFramework . IsDotnetCore ( ) && ! options . UseDapper )
17- return GenerateAsRecord ( className , columns ) ;
18- return GenerateAsCLass ( className , columns ) ;
17+ return GenerateAsRecord ( className , columns , query ) ;
18+ return GenerateAsCLass ( className , columns , query ) ;
1919 }
2020
21- private MemberDeclarationSyntax GenerateAsRecord ( string className , IList < Column > columns )
21+ private MemberDeclarationSyntax GenerateAsRecord ( string className , IList < Column > columns , Query ? query )
2222 {
2323 var seenEmbed = new Dictionary < string , int > ( ) ;
2424 var recordParameters = columns
25- . Select ( column => $ "{ dbDriver . GetCsharpType ( column ) } { GetFieldName ( column , seenEmbed ) } ")
25+ . Select ( column => $ "{ dbDriver . GetCsharpType ( column , query ) } { GetFieldName ( column , seenEmbed ) } ")
2626 . JoinByComma ( ) ;
2727 return ParseMemberDeclaration ( $ "public readonly record struct { className } ({ recordParameters } );") ! ;
2828 }
2929
30- private ClassDeclarationSyntax GenerateAsCLass ( string className , IList < Column > columns )
30+ private ClassDeclarationSyntax GenerateAsCLass ( string className , IList < Column > columns , Query ? query )
3131 {
3232 var modernDotnetSupported = dbDriver . Options . DotnetFramework . IsDotnetCore ( ) ;
3333 return ClassDeclaration ( className )
@@ -40,7 +40,7 @@ MemberDeclarationSyntax[] ColumnsToProperties()
4040 var seenEmbed = new Dictionary < string , int > ( ) ;
4141 return columns . Select ( column =>
4242 {
43- var csharpType = dbDriver . GetCsharpType ( column ) ;
43+ var csharpType = dbDriver . GetCsharpType ( column , query ) ;
4444 var optionalRequiredModifier = RequiredModifierNeeded ( column ) ? "required" : string . Empty ;
4545 var setterMethod = modernDotnetSupported ? "init" : "set" ;
4646 return ParseMemberDeclaration (
@@ -58,7 +58,7 @@ bool RequiredModifierNeeded(Column column)
5858 return false ;
5959 if ( column . EmbedTable != null )
6060 return true ;
61- return column . NotNull ;
61+ return dbDriver . IsColumnNotNull ( column , query ) ;
6262 }
6363 }
6464
0 commit comments