【问题标题】:Expression.Invoke in Entity Framework?Expression.Invoke 在实体框架中?
【发布时间】:2008-08-14 00:24:43
【问题描述】:

实体框架不支持Expression.Invoke 运算符。尝试使用时收到以下异常:

“LINQ to Entities 不支持 LINQ 表达式节点类型‘Invoke’。

有没有人解决这个缺失的功能?我想在实体框架上下文中使用详细的 PredicateBuilder here

编辑 1 @marxidad - 我喜欢你的建议,但它确实让我有些困惑。您能否就您提出的解决方案提供进一步的建议?

编辑 2 @marxidad - 感谢您的澄清。

【问题讨论】:

标签: .net linq entity-framework linq-to-entities


【解决方案1】:

PredicateBuilderLINQKit 现在支持实体框架。

对不起,伙计们,没有早点这样做!

【讨论】:

  • 是的,现在可以了。只需在 .Where() 之前添加 AsExpandable() 即可。
  • 当我添加 AsExpandable() 时,我收到“无法将类型为 'System.Linq.Expressions.MemberExpression' 的对象转换为类型 'System.Linq.Expressions.LambdaExpression'。”在 LambdaExpression lambda = (LambdaExpression)target; 行的 VisitInvocation
【解决方案2】:

实体框架将 LINQ 表达式转换为实体命令树,并且在其中仅支持其规范函数。您必须使用带有规范函数的命令树来执行 PredicateBuilder 之类的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-07
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多