@@ -101,7 +101,7 @@ private WriteOperationKind ConvertOperationCode(AtomicOperationObject atomicOper
101101 private ( ResourceIdentityRequirements requirements , IIdentifiable ? primaryResource ) ConvertRef ( AtomicOperationObject atomicOperationObject ,
102102 RequestAdapterState state )
103103 {
104- ResourceIdentityRequirements requirements = CreateIdentityRequirements ( state ) ;
104+ ResourceIdentityRequirements requirements = CreateDataRequirements ( state ) ;
105105 IIdentifiable ? primaryResource = null ;
106106
107107 AtomicReferenceResult ? refResult = atomicOperationObject . Ref != null
@@ -110,29 +110,21 @@ private WriteOperationKind ConvertOperationCode(AtomicOperationObject atomicOper
110110
111111 if ( refResult != null )
112112 {
113- requirements = new ResourceIdentityRequirements
114- {
115- ResourceType = refResult . ResourceType ,
116- IdConstraint = requirements . IdConstraint ,
117- IdValue = refResult . Resource . StringId ,
118- LidValue = refResult . Resource . LocalId ,
119- RelationshipName = refResult . Relationship ? . PublicName
120- } ;
121-
122113 state . WritableRequest ! . PrimaryId = refResult . Resource . StringId ;
123114 state . WritableRequest . PrimaryResourceType = refResult . ResourceType ;
124115 state . WritableRequest . Relationship = refResult . Relationship ;
125116 state . WritableRequest . IsCollection = refResult . Relationship is HasManyAttribute ;
126117
127118 ConvertRefRelationship ( atomicOperationObject . Data , refResult , state ) ;
128119
120+ requirements = CreateRefRequirements ( refResult , requirements ) ;
129121 primaryResource = refResult . Resource ;
130122 }
131123
132124 return ( requirements , primaryResource ) ;
133125 }
134126
135- private ResourceIdentityRequirements CreateIdentityRequirements ( RequestAdapterState state )
127+ private ResourceIdentityRequirements CreateDataRequirements ( RequestAdapterState state )
136128 {
137129 JsonElementConstraint ? idConstraint = state . Request . WriteOperation == WriteOperationKind . CreateResource
138130 ? _options . AllowClientGeneratedIds ? null : JsonElementConstraint . Forbidden
@@ -144,6 +136,18 @@ private ResourceIdentityRequirements CreateIdentityRequirements(RequestAdapterSt
144136 } ;
145137 }
146138
139+ private static ResourceIdentityRequirements CreateRefRequirements ( AtomicReferenceResult refResult , ResourceIdentityRequirements dataRequirements )
140+ {
141+ return new ResourceIdentityRequirements
142+ {
143+ ResourceType = refResult . ResourceType ,
144+ IdConstraint = dataRequirements . IdConstraint ,
145+ IdValue = refResult . Resource . StringId ,
146+ LidValue = refResult . Resource . LocalId ,
147+ RelationshipName = refResult . Relationship ? . PublicName
148+ } ;
149+ }
150+
147151 private void ConvertRefRelationship ( SingleOrManyData < ResourceObject > relationshipData , AtomicReferenceResult refResult , RequestAdapterState state )
148152 {
149153 if ( refResult . Relationship != null )
0 commit comments