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

EF Core 6 breaking change list does not include a new exception #4315

Closed
DillonN-build opened this issue Apr 6, 2023 · 3 comments · Fixed by #4673
Closed

EF Core 6 breaking change list does not include a new exception #4315

DillonN-build opened this issue Apr 6, 2023 · 3 comments · Fixed by #4673

Comments

@DillonN-build
Copy link

After upgrading EF Core from 5.0.17 to 6.0.15, it looks like the event ID CoreEventId.NavigationBaseIncludeIgnored now throws an exception by default. However I can't find anywhere that this change is documented. Maybe I'm missing something here, but I think the breaking change page should cover it?


Document Details

Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

@ajcvickers
Copy link
Member

As far as I can tell, it was throwing in 5.0 as well. Please attach a small, runnable project or post a small, runnable code listing that reproduces what you are seeing so that we can investigate.

@DillonN-build
Copy link
Author

@ajcvickers thanks for the response - that's interesting, it's possible we're picking it up from somewhere else. I've gone ahead and pushed a small project repo to reproduce - https://github.com/DillonN-build/ef-core-exception-test. This is using .NET 6 and testing Microsoft.EntityFameworkCore.Sqlite 5.x vs 6.x. Program.cs contains a trivial query that sets off the error:

var results = await dbContext.Parents
    .Include(p => p.Children).ThenInclude(c => c.Parent)
    .ToListAsync();

I was getting some intermittent behaviour when testing this locally that I think is down to NuGet caching. I added a GitHub Actions workflow to the repo to test in a more sterile environment. You can see the results in this run.

To summarize the results for different Microsoft.EntityFameworkCore.Sqlite versions:

  • 5.0.4 and below:
    • Throws a different/internal exception - I believe this to be related to incompatibility with .NET 6, so ignoring for this purpose
  • 5.0.5 up to and including 5.0.17:
    • No exception is thrown
  • 6.0.0 up to and including 6.0.16:
    • Throws the exception: System.InvalidOperationException: An error was generated for warning 'Microsoft.EntityFrameworkCore.Query.NavigationBaseIncludeIgnored': The navigation 'TestChildEntity.Parent' was ignored from 'Include' in the query since the fix-up will automatically populate it. [...]

Note I've also been able to reproduce with Pomelo.EntityFrameworkCore.MySql (where I originally came across this), but figured SQLite would be a preferrable example to test with

@ajcvickers
Copy link
Member

@DillonN-build Thanks for the repro.

Note for triage: we made this throw by default at some point, but it is not documented as a breaking change anywhere I can find.

@ajcvickers ajcvickers added this to the 8.0.0 milestone Apr 20, 2023
@ajcvickers ajcvickers self-assigned this Apr 20, 2023
@ajcvickers ajcvickers modified the milestones: 8.0.0, 9.0.0 Mar 9, 2024
ajcvickers added a commit that referenced this issue Mar 10, 2024
Fixes #4608
Part of #4538
Fixes #4315
Fixes #4257
Fixes #4655
Fixes #4654
ajcvickers added a commit that referenced this issue Mar 10, 2024
Fixes #4608
Part of #4538
Fixes #4315
Fixes #4257
Fixes #4655
Fixes #4654
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants