-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Lazy loading proxy comparison throws"could not be translated" InvalidOperationException #19676
Comments
It turns out this only repros if you put the type of the variable in the LINQ query, so this works:
But this doesn't
Calling query extension methods directly also works. |
Given Event is an entityType, the where predicate in exception message should have been re-written into entity equality. |
We can add it to my pile of EE issues. |
related #20164 |
Resolves #15080 Implemented behavior: - If any part of composite key is null then key is null. - If comparing entity with null then check if "any" key value is null. - If comparing entity with non-null then check if "all" key values are non null. Resolves #20344 Resolves #19431 Resolves #13568 Resolves #13655 Since we already convert property access to nullable, if entity from client is null, make key value as null. Resolves #19676 Clr type mismatch between proxy type and entity type is ignored. Resolves #20164 Rewrites entity equality during translation Part of #18923
Resolves #15080 Implemented behavior: - If any part of composite key is null then key is null. - If comparing entity with null then check if "any" key value is null. - If comparing entity with non-null then check if "all" key values are non null. Resolves #20344 Resolves #19431 Resolves #13568 Resolves #13655 Since we already convert property access to nullable, if entity from client is null, make key value as null. Resolves #19676 Clr type mismatch between proxy type and entity type is ignored. Resolves #20164 Rewrites entity equality during translation Part of #18923
Resolves #15080 Implemented behavior: - If any part of composite key is null then key is null. - If comparing entity with null then check if "any" key value is null. - If comparing entity with non-null then check if "all" key values are non null. Resolves #20344 Resolves #19431 Resolves #13568 Resolves #13655 Since we already convert property access to nullable, if entity from client is null, make key value as null. Resolves #19676 Clr type mismatch between proxy type and entity type is ignored. Resolves #20164 Rewrites entity equality during translation Part of #18923
Resolves #15080 Implemented behavior: - If any part of composite key is null then key is null. - If comparing entity with null then check if "any" key value is null. - If comparing entity with non-null then check if "all" key values are non null. Resolves #20344 Resolves #19431 Resolves #13568 Resolves #13655 Since we already convert property access to nullable, if entity from client is null, make key value as null. Resolves #19676 Clr type mismatch between proxy type and entity type is ignored. Resolves #20164 Rewrites entity equality during translation Part of #18923
Resolves #15080 Implemented behavior: - If any part of composite key is null then key is null. - If comparing entity with null then check if "any" key value is null. - If comparing entity with non-null then check if "all" key values are non null. Resolves #20344 Resolves #19431 Resolves #13568 Resolves #13655 Since we already convert property access to nullable, if entity from client is null, make key value as null. Resolves #19676 Clr type mismatch between proxy type and entity type is ignored. Resolves #20164 Rewrites entity equality during translation Part of #18923
A where clause comparing a lazy loading proxy to a navigation property of a table is throwing an InvalidOperationException like the one below on .NET Core 3.0 and 3.1. This worked on .NET Core 2.1. While it's possible to work around this by replacing a particular instance with a key comparison, tracking down all of the instances in our project would be a lot of work.
The error also suggests that EF is trying to do a join instead of just comparing the proxy's primary key to the child table's foreign key.
The query is:
The types involved are a simple parent-child relationship:
The full exception is:
Further technical details
EF Core version: 3.1
Database provider:Microsoft.EntityFrameworkCore.SqlServer
Target framework: 3.1
Operating system: Windows 10
IDE: Visual Studio 2019 16.4.3
The text was updated successfully, but these errors were encountered: