@@ -635,6 +635,7 @@ export class DelegateProxyHandler extends DefaultPrismaProxyHandler {
635635    // convert foreign key assignments to `connect` payload 
636636    // e.g.: { authorId: value } -> { author: { connect: { id: value }  }  } 
637637    private  fkAssignmentToConnect ( model : string ,  args : any )  { 
638+         const  keysToDelete : string [ ]  =  [ ] ; 
638639        for  ( const  [ key ,  value ]  of  Object . entries ( args ) )  { 
639640            if  ( value  ===  undefined )  { 
640641                continue ; 
@@ -648,19 +649,22 @@ export class DelegateProxyHandler extends DefaultPrismaProxyHandler {
648649                const  relationInfo  =  this . queryUtils . getRelationForForeignKey ( model ,  key ) ; 
649650                if  ( relationInfo )  { 
650651                    // turn { [fk]: value } into { [relation]: { connect: { [id]: value }  }  } 
651-                     if  ( ! args [ relationInfo . relation . name ] )  { 
652-                         args [ relationInfo . relation . name ]  =  { } ; 
652+                     const  relationName  =  relationInfo . relation . name ; 
653+                     if  ( ! args [ relationName ] )  { 
654+                         args [ relationName ]  =  { } ; 
653655                    } 
654-                     if  ( ! args [ relationInfo . relation . name ] . connect )  { 
655-                         args [ relationInfo . relation . name ] . connect  =  { } ; 
656+                     if  ( ! args [ relationName ] . connect )  { 
657+                         args [ relationName ] . connect  =  { } ; 
656658                    } 
657-                     if  ( ! ( relationInfo . idField  in  args [ relationInfo . relation . name ] . connect ) )  { 
658-                         args [ relationInfo . relation . name ] . connect [ relationInfo . idField ]  =  value ; 
659-                         delete   args [ key ] ; 
659+                     if  ( ! ( relationInfo . idField  in  args [ relationName ] . connect ) )  { 
660+                         args [ relationName ] . connect [ relationInfo . idField ]  =  value ; 
661+                         keysToDelete . push ( key ) ; 
660662                    } 
661663                } 
662664            } 
663665        } 
666+ 
667+         keysToDelete . forEach ( ( key )  =>  delete  args [ key ] ) ; 
664668    } 
665669
666670    // inject field data that belongs to base type into proper nesting structure 
0 commit comments