【发布时间】:2020-06-25 15:06:02
【问题描述】:
public string[] FindAssets2()
{
string[] result;
using (var ctx = new StockContext())
{
var predicate = PredicateBuilder.New<Asset>().Or(asset => asset.Symbol.Contains("TSLA"));
result = ctx.Assets.AsExpandable()
.Where(predicate)
.Select(z => z.Symbol)
.ToArray();
}
return result;
}
只是一段简单的代码。它把我扔了
Exception: Unhandled expression type: 'Extension'
LinqKit.ExpressionVisitor.Visit(Expression exp)
LinqKit.ExpressionVisitor.VisitExpressionList(ReadOnlyCollection<Expression> original)
LinqKit.ExpressionVisitor.VisitMethodCall(MethodCallExpression m)
LinqKit.ExpressionVisitor.Visit(Expression exp)
LinqKit.Extensions.Expand(Expression expr)
LinqKit.ExpandableQueryProvider<T>.System.Linq.IQueryProvider.CreateQuery<TElement>(Expression expression)
System.Linq.Queryable.Where<TSource>(IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate)
下面是我安装的包
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.0-preview.4.20220.10" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.0-preview.4.20220.10" />
<PackageReference Include="LINQKit.Core" Version="1.1.17" />
任何帮助将不胜感激。非常感谢!
【问题讨论】:
-
当您在 Visual Studio 中将鼠标悬停在
predicate上时,它表示它是什么类型? -
如果你只是
ToString()它 - 它是什么样的? -
尽管如此,最终它看起来是这样的:可能是要向编写 LinqKit 的人报告的东西
-
对于所有迟到的访问者和想要将 EFC 与 LINQKIT 一起使用的人,请考虑在
https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/5.0.0-preview.2.20120.8上使用 EFC 5.0.0-preview.2.20120.8。这是目前唯一适用于 LINQKIT 的版本。
标签: c# .net-core entity-framework-core predicatebuilder