You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
usingMicrosoft.EntityFrameworkCore;varcodes=newstring[]{"a","b","c"};usingvardb=newAppDb();varq=fromsindb.Stuffswherecodes.Any(c =>c.StartsWith(s.Code))// <--- this causes the problemselects;Console.WriteLine(q.ToQueryString());classAppDb:DbContext{publicDbSet<Stuff>Stuffs=>this.Set<Stuff>();protectedoverridevoidOnConfiguring(DbContextOptionsBuilderbuilder)=>builder.UseOracle("Data Source=whatever");}classStuff{publicintId{get;set;}publicrequiredstringCode{get;set;}}
Exception thrown:
System.InvalidOperationException: 'Query root of type 'ParameterQueryRootExpression' wasn't handled by provider code. This issue happens when using a provider specific method on a different provider where it is not supported.'
This works in MSSQL via json arrays (i.e. OPENJSON) and could have a semantically equivalent translation via JSON_TABLE (should be supported in 19+)
If the indicated line is quasi-trivial e.g. codes.Contains(s.Code) or codes.Any(c => c == s.Code) then translation succeeds.
Versions:
Oracle.EntityFrameworkCore 8.23.50
Oracle.ManagedDataAccess.Core 23.5.1
The text was updated successfully, but these errors were encountered:
See marked row below
Repro:
Exception thrown:
This works in MSSQL via json arrays (i.e. OPENJSON) and could have a semantically equivalent translation via JSON_TABLE (should be supported in 19+)
If the indicated line is quasi-trivial e.g.
codes.Contains(s.Code)
orcodes.Any(c => c == s.Code)
then translation succeeds.Versions:
The text was updated successfully, but these errors were encountered: