当我尝试“连接”使用导航属性的多个IQueryable where子句时,我在Entity Core 1.1.0中遇到异常。
简单示例(不是我的实际代码):
public List<ProjectSummaryDto> TestRelation(string s)
{
var query = _context.TechnologicallyProject
.WhereIf(! string.IsNullOrWhiteSpace(s), q => q.Document.Title.Contains(s))
.ProjectTo<ProjectSummaryDto>();
return query.ToList(); //Exception Message: must be reducible node
}
堆栈追踪:
在System.Linq.Expressions.Expression.ReduceAndCheck()处 System.Linq.Expressions.Expression.ReduceExtensions()at System.Linq.Expressions.Compiler.StackSpiller.RewriteExtensionExpression(表达式 expr,Stack stack)....
但是,当它包含(标题)到Equlas(id)时它会发生变化,它可以正常工作
public List<ProjectSummaryDto> TestRelation(int s)
{
var query = _context.TechnologicallyProject
.WhereIf(s != 0 , q => q.Document.Id.Equals(s))
.ProjectTo<ProjectSummaryDto>();
return query.ToList();
}
答案 0 :(得分:1)
1.1.4
(https://github.com/aspnet/EntityFrameworkCore/releases)。尝试先更新项目。