@@ -102,7 +102,7 @@ let private addScalarInterface (ty : ProvidedTypeDefinition) (field : ProvidedFi
102102 ty.DefineMethodOverride( getterMethod, getScalarValue)
103103 ty.AddMember( getterMethod)
104104
105- let rec private generateRowTypeFromColumns ( model : UserModel ) name ( columnMap : CompileTimeColumnMap ) =
105+ let rec private generateRowTypeFromColumns isRoot ( model : UserModel ) name ( columnMap : CompileTimeColumnMap ) =
106106 let ty =
107107 ProvidedTypeDefinition
108108 ( name
@@ -111,7 +111,7 @@ let rec private generateRowTypeFromColumns (model : UserModel) name (columnMap :
111111 , HideObjectMethods = true
112112 )
113113 ty.AddCustomAttribute( SerializableAttributeData())
114- if not columnMap.HasSubMaps then
114+ if isRoot && not columnMap.HasSubMaps then
115115 ty.AddCustomAttribute( BlueprintNoKeyAttributeData())
116116 let fields = ResizeArray()
117117 let addField pk ( name : string ) ( fieldTy : Type ) =
@@ -139,7 +139,7 @@ let rec private generateRowTypeFromColumns (model : UserModel) name (columnMap :
139139 let info = column.Expr.Info
140140 addField info.PrimaryKey name <| info.Type.CLRType( useOptional = ( model.Config.Optionals = Config.FsStyle))
141141 for KeyValue( name, subMap) in columnMap.SubMaps do
142- let subTy = generateRowTypeFromColumns model ( toRowTypeName name) subMap
142+ let subTy = generateRowTypeFromColumns false model ( toRowTypeName name) subMap
143143 ty.AddMember( subTy)
144144 addField false name subTy
145145 let ctorParams = [ for camel, field in fields -> ProvidedParameter( camel, field.FieldType) ]
@@ -159,7 +159,7 @@ let rec private generateRowTypeFromColumns (model : UserModel) name (columnMap :
159159
160160let private generateRowType ( model : UserModel ) ( name : string ) ( query : ColumnType QueryExprInfo ) =
161161 CompileTimeColumnMap.Parse( query.Columns)
162- |> generateRowTypeFromColumns model name
162+ |> generateRowTypeFromColumns true model name
163163
164164let private maskOfTables ( model : UserModel ) ( tables : QualifiedObjectName seq ) =
165165 let mutable mask = BitMask.Zero
0 commit comments