转换为表达式

发布于 2024-11-04 07:10:06 字数 205 浏览 1 评论 0原文

如何将此方法转换为可以在 linq toEntity 中使用的表达式:

    public bool IsMatch(long additionId)
    {
        return AdditionsPrices.Any(x => x.AdditionId == additionId);
    }

谢谢!

How can I convert this method to Expression that I can use in linq to entities:

    public bool IsMatch(long additionId)
    {
        return AdditionsPrices.Any(x => x.AdditionId == additionId);
    }

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灼疼热情 2024-11-11 07:10:06

这是解决方案:

public Expression<Func<Addition, bool>> IsMatch(long additionId)
    {
        return a => a.AdditionsPrices.Any(x => x.AdditionId == additionId);
    }

This is the solution:

public Expression<Func<Addition, bool>> IsMatch(long additionId)
    {
        return a => a.AdditionsPrices.Any(x => x.AdditionId == additionId);
    }
又怨 2024-11-11 07:10:06

为什么不直接执行 Contains() 查询 - 从 AdditionsPrices 中提取 List

List<long> additionIds = AdditionsPrices.Select( x => x.AdditionId)
                                        .ToList();

然后在 EF Contains() 中使用它查询:

var results = context.SomeEntitySet
                     .Where(x => additionIds.Contains(x.AdditionId));

Why don't you just do a Contains() query instead - extract a List<long> from AdditionsPrices:

List<long> additionIds = AdditionsPrices.Select( x => x.AdditionId)
                                        .ToList();

and then use this in a EF Contains() query:

var results = context.SomeEntitySet
                     .Where(x => additionIds.Contains(x.AdditionId));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文