Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[5.0.x] Don't leave unknown FK values when principal is known but has not-set, non-generated, value #24178

Merged
merged 2 commits into from Mar 10, 2021

Conversation

ajcvickers
Copy link
Member

Port of 6.0 fix #23875 to 5.0 release.

Fixes #23730

Description

An exception is thrown when no key value is set for a non-generated key of an owned type. Normally this is a negative case since non-generated key values must be explicitly set. However, this can works when the non-generated value is part of a composite key for which other parts of the key are generated. In this case, the non-generated part can have the same default value for multiple inserts without violating the primary key constraint.

Customer Impact

This is a regression for the case described above. There is no reasonable workaround.

(We already fixed this for EF Core 6.0, but decided not to patch since it seemed to be a regression only in a negative case. Since then other customers have reported the issue and one customer outlined the scenario above where it is a regression in working code.)

How found

Reported by multiple customers.

Test coverage

Test coverage for this case has been added in this PR.

Regression?

Yes, from EF Core 3.1.

Risk

Low. The fix is already in EF Core 6.0 and is targetted to this case. Also quirked.

… not-set, non-generated, value

Port of 6.0 fix #23875 to 5.0 release.

Fixes #23730

**Description**

An exception is thrown when no key value is set for a non-generated key of an owned type. Normally this is a negative case since non-generated key values must be explicitly set. However, this can works when the non-generated value is part of a composite key for which other parts of the key are generated. In this case, the non-generated part can have the same default value for multiple inserts without violating the primary key constraint.

**Customer Impact**

This is a regression for the case described above. There is no reasonable workaround.

(We already fixed this for EF Core 6.0, but decided not to patch since it seemed to be a regression only in a negative case. Since then other customers have reported the issue and one customer outlined the scenario above where it is a regression in working code.)

**How found**

Reported by multiple customers.

**Test coverage**

Test coverage for this case has been added in this PR.

**Regression?**

Yes, from EF Core 3.1.

**Risk**

Low. The fix is already in EF Core 6.0 and is targetted to this case. Also quirked.
@ajcvickers ajcvickers requested a review from a team February 18, 2021 00:01
@ajcvickers ajcvickers added this to the 5.0.x milestone Feb 18, 2021
@leecow leecow modified the milestones: 5.0.x, 5.0.5 Feb 18, 2021
@wtgodbe wtgodbe merged commit 2cec5f7 into release/5.0 Mar 10, 2021
@wtgodbe wtgodbe deleted the DaftPunkIsPlayingAtMyHouse0217 branch March 10, 2021 17:51
@ajcvickers ajcvickers removed this from the 5.0.5 milestone Mar 11, 2021
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.

None yet

4 participants