@@ -101,7 +101,7 @@ internal EdmChangedObjectCollection Patch(EdmODataAPIHandler apiHandler, ODataEd
101
101
internal EdmChangedObjectCollection CopyChangedValues ( EdmODataAPIHandler apiHandler , ODataEdmAPIHandlerFactory apiHandlerFactory = null )
102
102
{
103
103
EdmChangedObjectCollection changedObjectCollection = new EdmChangedObjectCollection ( _entityType ) ;
104
- IEdmStructuralProperty [ ] keys = _entityType . Key ( ) . ToArray ( ) ;
104
+ string [ ] keys = _entityType . Key ( ) . Select ( x => x . Name ) . ToArray ( ) ;
105
105
106
106
foreach ( IEdmChangedObject changedObj in Items )
107
107
{
@@ -199,18 +199,18 @@ internal EdmChangedObjectCollection CopyChangedValues(EdmODataAPIHandler apiHand
199
199
return changedObjectCollection ;
200
200
}
201
201
202
- private static IDictionary < string , object > GetKeyValues ( IEdmStructuralProperty [ ] keys , IEdmChangedObject changedObj )
202
+ private static IDictionary < string , object > GetKeyValues ( string [ ] keys , IEdmChangedObject changedObj )
203
203
{
204
204
IDictionary < string , object > keyValues = new Dictionary < string , object > ( ) ;
205
205
206
- foreach ( IEdmStructuralProperty key in keys )
206
+ foreach ( string key in keys )
207
207
{
208
208
object value ;
209
- changedObj . TryGetPropertyValue ( key . Name , out value ) ;
209
+ changedObj . TryGetPropertyValue ( key , out value ) ;
210
210
211
211
if ( value != null )
212
212
{
213
- keyValues . Add ( key . Name , value ) ;
213
+ keyValues . Add ( key , value ) ;
214
214
}
215
215
}
216
216
@@ -323,7 +323,7 @@ private void ApplyProperties(EdmStructuredObject changedObj, EdmStructuredObject
323
323
}
324
324
325
325
private IEdmChangedObject HandleFailedOperation ( EdmEntityObject changedObj , DataModificationOperationKind operation , IEdmStructuredObject originalObj ,
326
- IEdmStructuralProperty [ ] keys , string errorMessage , EdmODataAPIHandler apiHandler )
326
+ string [ ] keys , string errorMessage , EdmODataAPIHandler apiHandler )
327
327
{
328
328
IEdmChangedObject edmChangedObject = null ;
329
329
DataModificationExceptionType dataModificationExceptionType = new DataModificationExceptionType ( operation ) ;
@@ -368,13 +368,13 @@ private IEdmChangedObject HandleFailedOperation(EdmEntityObject changedObj, Data
368
368
}
369
369
370
370
//This is for ODL to work to set id as empty, because if there are missing keys, id wouldnt be set and we need to set it as empty.
371
- private static void ValidateForDeletedEntityId ( IEdmStructuralProperty [ ] keys , EdmDeltaDeletedEntityObject edmDeletedObject )
371
+ private static void ValidateForDeletedEntityId ( string [ ] keys , EdmDeltaDeletedEntityObject edmDeletedObject )
372
372
{
373
373
bool hasNullKeys = false ;
374
374
for ( int i = 0 ; i < keys . Length ; i ++ )
375
375
{
376
376
object value ;
377
- if ( edmDeletedObject . TryGetPropertyValue ( keys [ i ] . Name , out value ) )
377
+ if ( edmDeletedObject . TryGetPropertyValue ( keys [ i ] , out value ) )
378
378
{
379
379
hasNullKeys = true ;
380
380
break ;
0 commit comments