C# 包含中使用的Lambda表达式在实体框架核心中无效

C# 包含中使用的Lambda表达式在实体框架核心中无效,c#,sql,postgresql,asp.net-core,entity-framework-core,C#,Sql,Postgresql,Asp.net Core,Entity Framework Core,我想在EntityFramework Core 3.1中执行查询 这是我的疑问: return await context_client.Tbcategoriapregunta.Include(e => e.Tbpreguntasfrecuentes.Where(preguntas => preguntas.Dstipousuario == user)).ToListAsync(); 但不起作用,这是消息错误 Lambda expression used inside Includ

我想在EntityFramework Core 3.1中执行查询

这是我的疑问:

return await context_client.Tbcategoriapregunta.Include(e => e.Tbpreguntasfrecuentes.Where(preguntas => preguntas.Dstipousuario == user)).ToListAsync();
但不起作用,这是消息错误

Lambda expression used inside Include is not valid.
这是反消息堆栈跟踪

位于Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpansionExpressionVisitor.ProcessInclude(NavigationExpansionExpression源、表达式表达式、布尔值和包含) 位于Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.VisitMethodCall(MethodCallExpression MethodCallExpression) 位于System.Linq.Expressions.MethodCallExpression.Accept(ExpressionVisitor) 位于System.Linq.Expressions.ExpressionVisitor.Visite(表达式节点) 位于Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.Expand(表达式查询) 位于Microsoft.EntityFrameworkCore.Query.QueryTranslationPreprocessor.Process(表达式查询) 位于Microsoft.EntityFrameworkCore.Query.QueryCompilationContext.CreateQueryExecutor[TResult](表达式查询) 位于Microsoft.EntityFrameworkCore.Storage.Database.CompileQuery[TResult](表达式查询,布尔异步) 位于Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.CompileQueryCore[TResult](IDatabase数据库、表达式查询、IModel模型、布尔异步) 在Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.c__DisplayClass12_0
1.b__0()
在Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOradQueryCore[TFunc](对象缓存键,Func
1编译器) 在Microsoft.EntityFrameworkCore.Query.Internal.CompiledQueryCache.GetOradQuery[TResult](对象缓存键,Func
1编译器)
在Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteAsync[TResult](表达式查询,取消令牌取消令牌)
在Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.ExecuteAsync[TResult](表达式表达式,CancellationToken CancellationToken)
位于Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable
1.GetAsyncEnumerator(CancellationToken CancellationToken) 位于Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.IncludableQueryable
2.GetAsyncEnumerator(CancellationToken CancellationToken)
在System.Runtime.CompilerServices.ConfiguredCancellableAsyncEnumerable上
1.GetAsyncEnumerator() 在Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.d_u64
1.MoveNext()中
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
at System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() 在C:\Users\admin\source\repos\API013 Ayuda\Business\Implementation\BsCategoriaPregunta.d_u4.MoveNext()中的Business.Implementation.BsCategoriaPregunta.d_u4.MoveNext()处:第58行


任何想法…?

包含()的目的是告诉它在处理此查询的同时从相关表加载数据

中的示例使用了一个场景,其中您希望从数据库加载博客列表,并包括与每个博客相关的帖子:

using (var context = new BloggingContext())
{
    var blogs = context.Blogs
        .Include(blog => blog.Posts)
        .ToList();
}
因此,在
Include()
中包含
Where()
是没有意义的

你必须告诉我们你想做什么。但也许像这样的事情可以奏效

return await context_client.Tbcategoriapregunta
    .Include(e => e.Tbpreguntasfrecuentes)
    .Where(categoria => categoria.Tbpreguntasfrecuentes.Dstipousuario == user)
    .ToListAsync();