Skip to content

Conversation

@roji
Copy link
Member

@roji roji commented Nov 24, 2025

Closes #37222

Description

One of EF 10.0's main new features is full support for complex JSON. Unfortunately, we had an omission where the necessary modeling information is absent for raw SQL queries. While the full, proper fix is tracked as #34627 for 11, this PR proposes to temporarily work around the lack of modeling information, allowing the use of SQL queries on entities which have JSON complex types.

Customer impact

Entity types which have complex JSON types on them cannot currently be queried out with SQL queries (e.g. FromSql), which is an important and often-used mechanism where EF cannot translate from LINQ (or translates to sub-optimal SQL).

How found

Multiple customers reported on 10.0.0

Regression

No.

Testing

Added.

Risk

Very low, trivial targeted fix for a case that otherwise immediately throws an exception.


Original description

@AndriySvyryd it's currently impossible to use FromSql on an entity type that contains a complex JSON column, because of #34627. While we should probably do #34627 properly for 11 (should we move it out of the backlog?), it seems possible to work around this in query for 10.0 - what do you think about the approach (temporary only)?

Note that view-only mapping still doesn't work since there's no mapping whatsoever (i.e. there must be a table mapping) - but that seems much more edge-casey.

@roji
Copy link
Member Author

roji commented Nov 24, 2025

Closing for now, until we see more user signal.

@roji roji closed this Nov 24, 2025
@roji roji reopened this Nov 26, 2025
@roji roji force-pushed the FromSqlComplexTypes branch from 8a8a7e8 to 8c820a1 Compare November 26, 2025 09:27
@roji roji requested a review from AndriySvyryd November 26, 2025 09:28
@roji roji marked this pull request as ready for review November 26, 2025 09:34
@roji roji requested a review from a team as a code owner November 26, 2025 09:34
@roji roji changed the title Work around the lack of complex types in default relational mappings Make FromSql work on entity types containing complex JSON Nov 26, 2025
@roji roji changed the title Make FromSql work on entity types containing complex JSON [release/10.0] Make FromSql work on entity types containing complex JSON Nov 26, 2025
@roji roji requested a review from artl93 November 26, 2025 23:14
@roji roji linked an issue Nov 30, 2025 that may be closed by this pull request
@artl93
Copy link
Member

artl93 commented Dec 2, 2025

@roji what is the basic difference in the customer experience between the proposed fix here and the full fix in 11?

@roji
Copy link
Member Author

roji commented Dec 2, 2025

@artl93 for FromSql (the main API we want to enable here), there's no customer experience difference - 10.0 and 11.0 would work exactly the same. But #34627 in 11.0 would take care of some additional scenarios (views, table-valued functions), which are much less mainstream/critical. It would also handle the FromSql in a better way - this PR is more of a workaround to enable the mainstream scenario for 10.0 in a way that's servicing-compatible (so #34627 would also be a cleanup).

Copy link
Member

@artl93 artl93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. Unblocks customer in new scenario in 10.0.

@roji
Copy link
Member Author

roji commented Dec 3, 2025

Approved via email.

@roji roji merged commit 1b1ad14 into dotnet:release/10.0 Dec 3, 2025
7 checks passed
@roji roji deleted the FromSqlComplexTypes branch December 3, 2025 18:06
@rbhanda rbhanda added this to the 10.0.2 milestone Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FromSql with complex type property results in the NullReferenceException

5 participants