Intersq中的相交或方法不在MYSQL中工作

时间:2016-08-03 05:45:58

标签: mysql entity-framework asp.net-web-api intersect

我正在使用mysql的实体框架。我必须在其中一个查询中使用Intersect但它会抛出错误" 不支持指定的方法。"。除了将数据存储到内存并应用Intersect之外,任何人都可以提出其他建议。

public List<share> GetFeed(List<long> UserRules, List<long> ListedShares, string AuthorID)
{
    List<share> listshare = DbContext
        .shares
        .Where(x => UserRules.Intersect(x.share_rules.Select(y => y.rule_id)).Any())
        .ToList();
    return listshare;
}

1 个答案:

答案 0 :(得分:1)

不支持指定的方法。表示EntityFramework无法将其转换为SQL查询。实际上,在大多数情况下,可以将其转换为支持的Contains。您应该更改您的方法以匹配:

public List<share> GetFeed(List<long> UserRules, List<long> ListedShares, string AuthorID)
{
    List<share> listshare = DbContext
        .shares
        .Where(x => x.share_rules.Any(y => UserRules.Contains(y.rule_id)))
        .ToList();
    return listshare;
}