Skip to content

@odata.bind problem with same column and table names #77

Description

@JakubStarobrat

We encounter an error when inserting data into a lookup column by OData.
We have two tables: Table1 and Table2, with logical names new_table1 and new_table2.
In Table2, We added a column named Table1 (logical name new_table1), which is a lookup column referencing Table1.
When inserting data into the column new_table1@odata.bind with the value
/new_table1s(8feb3d3a-71cf-f011-bbd3-000d3a26b7dc), we receive the following error:
"HttpError: Error identified in Payload provided by the user for Entity :'new_table2s'.
For more information on this error please follow this help link https://go.microsoft.com/fwlink/?linkid=2195293
----> InnerException : Microsoft.OData.ODataException: An undeclared property 'new_table1'
which only has property annotations in the payload but no property value was found in the payload.
In OData, only declared navigation properties and declared named streams can be represented as properties without values."
Interestingly, when we add another lookup column named Test (new_test) that also references Table1, the issue does not occur (the only diffrence is the column name)
After testing with different tables and column names, it seems the problem arises specifically when the column name is identical to the name of another table.
In Dataverse, there is no issue when adding a column with the same name as another table, nor when creating a table with the same name as a column in a different table. Everything works correctly in Dataverse — the problem only occurs with OData.

Activity

  1. saurabhrb commented on Mar 12, 2026

    @saurabhrb
    Contributor

    Thanks for the detailed report, JakubStarobrat. Apologies for the delay in getting back to you.

    This is likely related to the @odata.bind casing issue fixed in PR #137. Could you check the navigation property name for your lookup column in your entity's \? Custom lookup navigation properties typically use PascalCase (e.g., new_Table1) even when the column's logical name is lowercase (new_table1). Using new_Table1@odata.bind instead of new_table1@odata.bind may resolve this.

    After the next beta release, the SDK will preserve whatever casing you provide in @odata.bind keys. If the issue persists after upgrading, please let us know.

  2. self-assigned this
    on Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions