dotnet / dotnet/efcore

Query precompilation fails for .FromSql() and .FromSqlRaw() queries

Open
#37,973 2 comments 0 reactions 0 assignees View on GitHub
area-precompiled-queries customer-reported
Dominant language
C#
Stars
14.8k
Forks
3.4k
PR merge metrics
PR metrics pending

Description

### Bug description

Precompiling queries with `.FromSql()` and `FromSqlRaw()`:

```
_ = context.Blogs.FromSql($"SELECT * FROM Blogs").ToList();
_ = context.Blogs.FromSqlRaw($"SELECT * FROM Blogs").ToList();
```

Produces errors:

```
...
QueryPrecompilationError { SyntaxNode = context.Blogs.FromSql($"SELECT * FROM Blogs").ToList(), Exception = System.Collections.Generic.KeyNotFoundException: The given key 'p' was not present in the dictionary.
...
QueryPrecompilationError { SyntaxNode = context.Blogs.FromSqlRaw($"SELECT * FROM Blogs").ToList(), Exception = System.Collections.Generic.KeyNotFoundException: The given key 'p' was not present in the dictionary.
```

See attached project with minimal example.

Can be reproduced with:

```
> dotnet publish --ucr --sc
```

[fromsql.zip](https://github.com/user-attachments/files/26184620/fromsql.zip)

### Your code

```csharp
--- Model.cs

public class Blog
{
public int Id { get; set; }
}

--- Context.cs

using Microsoft.EntityFrameworkCore;

public class Context : DbContext
{
public DbSet Blogs { get; set; } = null!;

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseSqlite("Data Source=tmp.db");
}
}

--- Program.cs

using Microsoft.EntityFrameworkCore;

using var context = new Context();

_ = context.Blogs.FromSql($"SELECT * FROM Blogs").ToList();
_ = context.Blogs.FromSqlRaw($"SELECT * FROM Blogs").ToList();
```

### Stack traces

```text

```

### Verbose output

```text
> dotnet ef dbcontext optimize --output-dir Generated --nativeaot --precompile-queries --verbose
Using project '/workspaces/ef-play/fromsql/fromsql.csproj'.
Using startup project '/workspaces/ef-play/fromsql/fromsql.csproj'.
dotnet msbuild /getProperty:ProjectName /getProperty:AssemblyName /getProperty:DesignAssembly /getProperty:Language /getProperty:OutputPath /getProperty:PlatformTarget /getProperty:ProjectAssetsFile /getProperty:ProjectDir /getProperty:RootNamespace /getProperty:RuntimeFrameworkVersion /getProperty:TargetFileName /getProperty:TargetFrameworkMoniker /getProperty:Nullable /getProperty:TargetFramework /getProperty:TargetPlatformIdentifier /getProperty:Platform /t:ResolvePackageAssets /getItem:RuntimeCopyLocalItems /workspaces/ef-play/fromsql/fromsql.csproj
dotnet msbuild /getProperty:ProjectName /getProperty:AssemblyName /getProperty:DesignAssembly /getProperty:Language /getProperty:OutputPath /getProperty:PlatformTarget /getProperty:ProjectAssetsFile /getProperty:ProjectDir /getProperty:RootNamespace /getProperty:RuntimeFrameworkVersion /getProperty:TargetFileName /getProperty:TargetFrameworkMoniker /getProperty:Nullable /getProperty:TargetFramework /getProperty:TargetPlatformIdentifier /getProperty:Platform /t:ResolvePackageAssets /getItem:RuntimeCopyLocalItems /workspaces/ef-play/fromsql/fromsql.csproj
Build started...
dotnet build /workspaces/ef-play/fromsql/fromsql.csproj /verbosity:quiet /nologo /p:PublishAot=false /p:EFOptimizeContext=false

Build succeeded.
0 Warning(s)
0 Error(s)

Time Elapsed 00:00:04.05

Build succeeded.
dotnet exec --depsfile /workspaces/ef-play/fromsql/bin/Debug/net11.0/fromsql.deps.json --additionalprobingpath /root/.nuget/packages --runtimeconfig /workspaces/ef-play/fromsql/bin/Debug/net11.0/fromsql.runtimeconfig.json /root/.dotnet/tools/.store/dotnet-ef/11.0.0-preview.1.26104.118/dotnet-ef/11.0.0-preview.1.26104.118/tools/net10.0/any/tools/net10.0/any/ef.dll dbcontext optimize --output-dir Generated --nativeaot --precompile-queries --assembly /workspaces/ef-play/fromsql/bin/Debug/net11.0/fromsql.dll --project /workspaces/ef-play/fromsql/fromsql.csproj --startup-assembly /workspaces/ef-play/fromsql/bin/Debug/net11.0/fromsql.dll --startup-project /workspaces/ef-play/fromsql/fromsql.csproj --project-dir /workspaces/ef-play/fromsql/ --root-namespace fromsql --language C# --framework net11.0 --design-assembly /root/.nuget/packages/microsoft.entityframeworkcore.design/11.0.0-preview.2.26159.112/lib/net11.0/Microsoft.EntityFrameworkCore.Design.dll --nullable --working-dir /workspaces/ef-play/fromsql --verbose
Query precompilation is an experimental feature and should be used with caution.
NativeAOT support is experimental and can change in the future.
Using assembly 'fromsql'.
Using startup assembly 'fromsql'.
Using application base '/workspaces/ef-play/fromsql/bin/Debug/net11.0'.
Using working directory '/workspaces/ef-play/fromsql'.
Using root namespace 'fromsql'.
Using project directory '/workspaces/ef-play/fromsql/'.
Remaining arguments: .
Finding DbContext classes...
Using environment 'Development'.
Finding IDesignTimeDbContextFactory implementations...
Finding DbContext classes in the project...
Found DbContext 'Context'.
Finding application service provider in assembly 'fromsql'...
Finding Microsoft.Extensions.Hosting service provider...
No static method 'CreateHostBuilder(string[])' was found on class 'Program'.
No application service provider was found.
Using context 'Context'.
Finding design-time services referenced by assembly 'fromsql'...
Finding design-time services referenced by assembly 'fromsql'...
No referenced design-time services were found.
Finding design-time services for provider 'Microsoft.EntityFrameworkCore.Sqlite'...
Using design-time services from provider 'Microsoft.EntityFrameworkCore.Sqlite'.
Finding IDesignTimeServices implementations in assembly 'fromsql'...
No design-time services were found.
Successfully generated a compiled model, it will be discovered automatically, but you can also call 'options.UseModel(ContextModel.Instance)'. Run this command again when the model is modified.
Compiling query expression:
'DbSet().FromSql(SELECT * FROM Blogs, @p)
'
Compiling query expression:
'DbSet().FromSql(SELECT * FROM Blogs, @p)
'
'Context' disposed.
System.InvalidOperationException: Query precompilation failed with errors:
QueryPrecompilationError { SyntaxNode = context.Blogs.FromSql($"SELECT * FROM Blogs").ToList(), Exception = System.Collections.Generic.KeyNotFoundException: The given key 'p' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitFromSql(FromSqlExpression fromSql)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.g__VisitList|122_0[T](List`1 list, Boolean inPlace, Boolean& changed, <>c__DisplayClass122_0&)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.Expand(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.ExpandFromSqlParameter(Expression queryExpression, ParametersCacheDecorator decorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, Dictionary`2 parameters, Boolean& canCache)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__GenerateRelationalCommandExpression|40_4(Dictionary`2 parameters, Boolean& canCache, <>c__DisplayClass40_0&, <>c__DisplayClass40_1&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__TryGeneratePregeneratedCommandResolver|40_0(Expression select, Expression`1& resolver, <>c__DisplayClass40_0&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.CreateRelationalCommandResolverExpression(Expression queryExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.ShaperProcessingExpressionVisitor.ProcessShaper(Expression shaperExpression, Expression& relationalCommandResolver, IReadOnlyList`1& readerColumns, LambdaExpression& relatedDataLoaders, Int32& collectionId)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitShapedQuery(ShapedQueryExpression shapedQueryExpression)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutorExpression[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Storage.Database.CompileQueryExpression[TResult](Expression query, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.PrecompileQuery[TResult](Expression query, Boolean async)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
--- End of stack trace from previous location ---
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.CompileQuery(Expression penultimateOperator, MethodCallExpression terminatingOperator)
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.ProcessSyntaxTree(SyntaxTree syntaxTree, SemanticModel semanticModel, IReadOnlyList`1 locatedQueries, List`1 precompilationErrors, String suffix, ISet`1 generatedFileNames, CancellationToken cancellationToken) }
QueryPrecompilationError { SyntaxNode = context.Blogs.FromSqlRaw($"SELECT * FROM Blogs").ToList(), Exception = System.Collections.Generic.KeyNotFoundException: The given key 'p' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitFromSql(FromSqlExpression fromSql)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.g__VisitList|122_0[T](List`1 list, Boolean inPlace, Boolean& changed, <>c__DisplayClass122_0&)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.Expand(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.ExpandFromSqlParameter(Expression queryExpression, ParametersCacheDecorator decorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, Dictionary`2 parameters, Boolean& canCache)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__GenerateRelationalCommandExpression|40_4(Dictionary`2 parameters, Boolean& canCache, <>c__DisplayClass40_0&, <>c__DisplayClass40_1&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__TryGeneratePregeneratedCommandResolver|40_0(Expression select, Expression`1& resolver, <>c__DisplayClass40_0&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.CreateRelationalCommandResolverExpression(Expression queryExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.ShaperProcessingExpressionVisitor.ProcessShaper(Expression shaperExpression, Expression& relationalCommandResolver, IReadOnlyList`1& readerColumns, LambdaExpression& relatedDataLoaders, Int32& collectionId)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitShapedQuery(ShapedQueryExpression shapedQueryExpression)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutorExpression[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Storage.Database.CompileQueryExpression[TResult](Expression query, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.PrecompileQuery[TResult](Expression query, Boolean async)
at InvokeStub_QueryCompiler.PrecompileQuery(Object, Span`1)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of stack trace from previous location ---
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.CompileQuery(Expression penultimateOperator, MethodCallExpression terminatingOperator)
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.ProcessSyntaxTree(SyntaxTree syntaxTree, SemanticModel semanticModel, IReadOnlyList`1 locatedQueries, List`1 precompilationErrors, String suffix, ISet`1 generatedFileNames, CancellationToken cancellationToken) }

at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.PrecompileQueries(String outputDir, DbContext context, String suffix, IServiceProvider services, IReadOnlyDictionary`2 memberAccessReplacements, ISet`1 generatedFileNames)
at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.Optimize(String outputDir, String modelNamespace, String suffix, Boolean scaffoldModel, Boolean precompileQueries, DbContext context, Boolean optimizeAllInAssembly, Boolean nativeAot, List`1 generatedFiles, HashSet`1 generatedFileNames)
at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.Optimize(String outputDir, String modelNamespace, String contextTypeName, String suffix, Boolean scaffoldModel, Boolean precompileQueries, Boolean nativeAot)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OptimizeContextImpl(String outputDir, String modelNamespace, String contextType, String suffix, Boolean scaffoldModel, Boolean precompileQueries, Boolean nativeAot)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OptimizeContext.<>c__DisplayClass0_0.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Query precompilation failed with errors:
QueryPrecompilationError { SyntaxNode = context.Blogs.FromSql($"SELECT * FROM Blogs").ToList(), Exception = System.Collections.Generic.KeyNotFoundException: The given key 'p' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitFromSql(FromSqlExpression fromSql)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.g__VisitList|122_0[T](List`1 list, Boolean inPlace, Boolean& changed, <>c__DisplayClass122_0&)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.Expand(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.ExpandFromSqlParameter(Expression queryExpression, ParametersCacheDecorator decorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, Dictionary`2 parameters, Boolean& canCache)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__GenerateRelationalCommandExpression|40_4(Dictionary`2 parameters, Boolean& canCache, <>c__DisplayClass40_0&, <>c__DisplayClass40_1&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__TryGeneratePregeneratedCommandResolver|40_0(Expression select, Expression`1& resolver, <>c__DisplayClass40_0&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.CreateRelationalCommandResolverExpression(Expression queryExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.ShaperProcessingExpressionVisitor.ProcessShaper(Expression shaperExpression, Expression& relationalCommandResolver, IReadOnlyList`1& readerColumns, LambdaExpression& relatedDataLoaders, Int32& collectionId)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitShapedQuery(ShapedQueryExpression shapedQueryExpression)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutorExpression[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Storage.Database.CompileQueryExpression[TResult](Expression query, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.PrecompileQuery[TResult](Expression query, Boolean async)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(ObjectHandleOnStack target, Void** arguments, ObjectHandleOnStack sig, BOOL isConstructor, ObjectHandleOnStack result)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
--- End of stack trace from previous location ---
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.CompileQuery(Expression penultimateOperator, MethodCallExpression terminatingOperator)
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.ProcessSyntaxTree(SyntaxTree syntaxTree, SemanticModel semanticModel, IReadOnlyList`1 locatedQueries, List`1 precompilationErrors, String suffix, ISet`1 generatedFileNames, CancellationToken cancellationToken) }
QueryPrecompilationError { SyntaxNode = context.Blogs.FromSqlRaw($"SELECT * FROM Blogs").ToList(), Exception = System.Collections.Generic.KeyNotFoundException: The given key 'p' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitFromSql(FromSqlExpression fromSql)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.g__VisitList|122_0[T](List`1 list, Boolean inPlace, Boolean& changed, <>c__DisplayClass122_0&)
at Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression.VisitChildren(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.VisitExtension(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.VisitExtension(Expression expression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Internal.RelationalParameterProcessor.Expand(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.ExpandFromSqlParameter(Expression queryExpression, ParametersCacheDecorator decorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, ParametersCacheDecorator parametersDecorator)
at Microsoft.EntityFrameworkCore.Query.RelationalParameterBasedSqlProcessor.Process(Expression queryExpression, Dictionary`2 parameters, Boolean& canCache)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__GenerateRelationalCommandExpression|40_4(Dictionary`2 parameters, Boolean& canCache, <>c__DisplayClass40_0&, <>c__DisplayClass40_1&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.g__TryGeneratePregeneratedCommandResolver|40_0(Expression select, Expression`1& resolver, <>c__DisplayClass40_0&)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.CreateRelationalCommandResolverExpression(Expression queryExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.ShaperProcessingExpressionVisitor.ProcessShaper(Expression shaperExpression, Expression& relationalCommandResolver, IReadOnlyList`1& readerColumns, LambdaExpression& relatedDataLoaders, Int32& collectionId)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitShapedQuery(ShapedQueryExpression shapedQueryExpression)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.VisitExtension(Expression extensionExpression)
at System.Linq.Expressions.Expression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutorExpression[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Storage.Database.CompileQueryExpression[TResult](Expression query, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.PrecompileQuery[TResult](Expression query, Boolean async)
at InvokeStub_QueryCompiler.PrecompileQuery(Object, Span`1)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
--- End of stack trace from previous location ---
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.CompileQuery(Expression penultimateOperator, MethodCallExpression terminatingOperator)
at Microsoft.EntityFrameworkCore.Query.Internal.PrecompiledQueryCodeGenerator.ProcessSyntaxTree(SyntaxTree syntaxTree, SemanticModel semanticModel, IReadOnlyList`1 locatedQueries, List`1 precompilationErrors, String suffix, ISet`1 generatedFileNames, CancellationToken cancellationToken) }
```

### EF Core version

10.0.3, 11.0.0-preview.2.26159.112

### Database provider

Microsoft.EntityFrameworkCore.Sqlite

### Target framework

.NET 10, .NET 11

### Operating system

Ubuntu 24.04.4 LTS

### IDE

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.