fail: Microsoft.AspNetCore.Server.Kestrel[13]
Connection id "0HLNG6LJ8PIR5", Request id "0HLNG6LJ8PIR5:00000001": An unhandled exception was thrown by the application.
System.NotImplementedException: The method or operation is not implemented.
at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSubquery(Expression expression)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalSqlTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalSqlTranslatingExpressionVisitor.Translate(Expression expression)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalProjectionBindingExpressionVisitor.Visit(Expression expression)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalProjectionBindingExpressionVisitor.VisitMemberInit(MemberInitExpression memberInitExpression)
at System.Linq.Expressions.MemberInitExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalProjectionBindingExpressionVisitor.Visit(Expression expression)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalProjectionBindingExpressionVisitor.Translate(SelectExpression selectExpression, Expression expression)
at Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSelect(ShapedQueryExpression source, LambdaExpression selector)
at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
at System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
at Microsoft.EntityFrameworkCore.Query.Pipeline.QueryCompilationContext2.CreateQueryExecutor[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery2[TResult](Expression query, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase database, Expression query, IModel model, Boolean async)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass9_0`1.<Execute>b__0()
at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore[TFunc](Object cacheKey, Func`1 compiler)
at Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery[TResult](Object cacheKey, Func`1 compiler)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression)
at Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1.System.Collections.IEnumerable.GetEnumerator()
at System.Text.Json.Serialization.JsonSerializer.HandleEnumerable(JsonClassInfo elementClassInfo, JsonSerializerOptions options, Utf8JsonWriter writer, WriteStack& state)
at System.Text.Json.Serialization.JsonSerializer.Write(Utf8JsonWriter writer, Int32 flushThreshold, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.JsonSerializer.WriteAsyncCore(Object value, Type type, Stream utf8Json, JsonSerializerOptions options, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter.WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|29_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 1517.5037ms 500
Further technical details
VSCode 1.35.1 linux
OS: KDE Neon (Ubuntu 18.04 base)
Dabase Provider: Microsoft.EntityFrameworkCore.SqlServer
dotnet list package
Top-level Package Requested Resolved
> Ical.Net 4.1.11 4.1.11
> Microsoft.AspNetCore.Mvc.NewtonsoftJson 3.0.0-preview6.* 3.0.0-preview6.19307.2
> Microsoft.EntityFrameworkCore 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.EntityFrameworkCore.Design 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.EntityFrameworkCore.Proxies 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.NETCore.App (A) [3.0.0-preview6-27804-01, ) 3.0.0-preview6-27804-01
> Microsoft.VisualStudio.Web.CodeGeneration.Design 3.0.0-preview5-* 3.0.0-preview5-19264-04
dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 3.0.100-preview6-012264
Commit: be3f0c1a03
Runtime Environment:
OS Name: neon
OS Version: 18.04
OS Platform: Linux
RID: linux-x64
Base Path: /snap/dotnet-sdk/41/sdk/3.0.100-preview6-012264/
Host (useful for support):
Version: 3.0.0-preview6-27804-01
Commit: fdf81c6faf
.NET Core SDKs installed:
3.0.100-preview6-012264 [/snap/dotnet-sdk/41/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.App 3.0.0-preview6.19307.2 [/snap/dotnet-sdk/41/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.0.0-preview6-27804-01 [/snap/dotnet-sdk/41/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
First, many thanks for trying preview 6. We really appreciate people trying the previews and filing issues on what they find.
If you haven't seen it already, there is some good information in the preview announcement post about the changes that are happening to LINQ queries for EF Core 3.0. Preview 6 is the first release containing these changes, which means we are both expecting things to be broken, but at the same time very grateful for everyone who tries the release and generated feedback.
@smitpatel In triage we came to the conclusion that this isn't something that worked in previous versions, but that it would likely work in 3.0. Is this correct, and if so is there an issue already tacking it?
We need to investigate this since it should already be working. There are few places which needs to work out to translate it correctly.
FOD with predicate gets converted to where + FOD by nav rewrite
Subquery member pushdown.
@arcooke - Can you verify the predicate passed into FirstOrDefault as it is always true? Is that typo or valid?
@ajcvickers Happy to help.. Oddly enough, I was on preview 5 when I first encountered this, and updated to 6 to see if it had been fixed. I just now reverted everything back to preview 5 (19227.1) to re-test, and now the same code posted above works fine. I may have temporarily had a version mismatch somewhere since I used wildcards for nuget package versions (3.0.0-preview5.*
, 3.0.0-preview6.*
, etc)
Preview 6 still breaks here, but 5 is working. Just verified with the identical code as posted above.
Working:
> Microsoft.EntityFrameworkCore 3.0.0-preview5.* 3.0.0-preview5.19227.1
> Microsoft.EntityFrameworkCore.Analyzers 3.0.0-preview5.* 3.0.0-preview5.19227.1
> Microsoft.EntityFrameworkCore.Design 3.0.0-preview5.* 3.0.0-preview5.19227.1
> Microsoft.EntityFrameworkCore.Proxies 3.0.0-preview5.* 3.0.0-preview5.19227.1
> Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview5.* 3.0.0-preview5.19227.1
Not working:
> Microsoft.EntityFrameworkCore 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.EntityFrameworkCore.Analyzers 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.EntityFrameworkCore.Design 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.EntityFrameworkCore.Proxies 3.0.0-preview6.* 3.0.0-preview6.19304.10
> Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview6.* 3.0.0-preview6.19304.10
@smitpatel It is always true and was not a typo. I reduced the code down to its simplest possible form for testing. t.CreatedDate == t.CreatedDate
.. I tested it that way since it should be functionally identical to calling FirstOrDefault() with no params. CreatedDate is defaulted to getdate() on insert from sql server so it always contains a valid datetime value.
Hi everyone!
I have the same issue after updating to preview6. Before it all worked witout issues (The next code is the native code NopCommerce).
This simple expression (and others similar ones too):
query = from p in query
from pc in p.ProductCategories.Where(pc => categoryIds.Contains(pc.CategoryId))
where categoryIds.Contains(pc.CategoryId)
select p;
calls next exception:
Microsoft.EntityFrameworkCore.Relational.Query.Pipeline.RelationalQueryableMethodTranslatingExpressionVisitor.TranslateSelectMany(ShapedQueryExpression source, LambdaExpression collectionSelector, LambdaExpression resultSelector)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor visitor)
System.Linq.Expressions.ExpressionVisitor.Visit(Expression node)
Microsoft.EntityFrameworkCore.Query.Pipeline.QueryCompilationContext2.CreateQueryExecutor(Expression query)
Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery2(Expression query, bool async)
Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore(IDatabase database, Expression query, IModel model, bool async)
Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler+<>c__DisplayClass9_0.b__0()
Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQueryCore(object cacheKey, Func<Func<QueryContext, TFunc>> compiler)
Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOrAddQuery(object cacheKey, Func<Func<QueryContext, TResult>> compiler)
Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute(Expression query)
Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute(Expression expression)
System.Linq.Queryable.Count(IQueryable source)
IdentityServer4-preview7 project with .NET Core 3.0-preview7 throws NotImplementedException
IdentityServer/IdentityServer4#3546
This is still an issue in Preview 9. Preview 5 is the newest version I'm able to use without running into this problem. Please look into this before releasing 3.0 .. this is critical functionality
This fails on preview 6, 7, 8 and 9
SELECT TOP(1) [e0].[Description]
FROM [EmployeesTitles] AS [e]
LEFT JOIN [EmployeeTitle] AS [e0] ON [e].[EmployeeTitleId] = [e0].[Id]
WHERE [e1].[Id] = [e].[EmployeesId]) AS [Title]
FROM [Employees] AS [e1]
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
and removed
add-regression-test
labels
Aug 28, 2020
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
customer-reported
punted-for-3.0
type-bug