OData / OData/AspNetCoreOData

Deprecate redundant EdmDeltaResourceObject and EdmDeltaComplexObject

Open
#1,429 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Major release opportunity
Dominant language
C#
Stars
505
Forks
186
PR merge metrics
No merged PRs in 30d

Description

Originally, EdmStructuredObject (the base class for EdmEntityObject and EdmComplexObject) did not implement IEdmChangedObject. However, four years ago, a change was introduced through [this commit](https://github.com/OData/AspNetCoreOData/commit/ee937986a197b9a231f63017790b3cfd3ce0621b) to make EdmStructuredObject implement IEdmChangedObject. This allowed both EdmEntityObject and EdmComplexObject to represent delta payloads.

As a result, EdmDeltaResourceObject and EdmDeltaComplexObject became redundant and should have been deprecated, as noted in this TODO:
[EdmDeltaResourceObject.cs#L24](https://github.com/OData/AspNetCoreOData/blame/c60d9e0e9f68d23ee8ccd84e854ef7e430fe6edb/src/Microsoft.AspNetCore.OData/Formatter/Value/EdmDeltaResourceObject.cs#L24)

I think we should mark redundant EdmDeltaResourceObject and EdmDeltaComplexObject as obsolete and remove them in the next major release

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the TODO in EdmDeltaResourceObject.cs and inspect the corresponding EdmDeltaComplexObject implementation, then compare both with EdmStructuredObject and IEdmChangedObject. Confirm the obsolete-marking and next-major-release expectations; done means the redundant types are handled consistently without breaking the current release.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend-api-design
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.