【问题标题】:Linq to entities subqueryLinq 到实体子查询
【发布时间】:2015-04-21 16:09:03
【问题描述】:

如何在 Linq 中编写以下子查询:

Context.Set<Process>()
       .Include(...)
       .Where(x => x.Activity.Name.CompareTo(Context.Set<Activity>().Where(a => a.Id == activityId).Select(c => a.Name)) > 0)
       .Take(1);

这是一个简化版的查询,WHERE 子句只包含不工作的部分。如果我将 Context.Set().... 子查询更改为字符串常量,则查询有效。事实上,它给出了 NotSupportedException

LINQ to entities does not recognize method Set<Activity>

【问题讨论】:

  • 如果您明确使用您的活动 DbSet 会发生什么:Context.Activities.Where(...)?

标签: entity-framework linq-to-entities entity-framework-6


【解决方案1】:

试试这个:

(from p in context.Set<Process>().Include(...)
 from a in context.Set<Activity>()
 where a.Id == activityId
 where p.Activity.Name.CompareTo(a.Name) > 0
 select p).Take(1);

【讨论】:

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