我可以做一个“Take(x)”吗?关于“包括” Linq 查询中的实体?

发布于 2024-09-24 16:09:36 字数 327 浏览 4 评论 0原文

我有一个非常简单的 linq to entites 语句:-

var query = (from q in Users.Include("UserHistory")
            select q).Take(20);

效果很好...除了对于每个用户..历史记录可以是 n+1。某些用户拥有 100 条 UserHistory 记录。

那么,我可以将 UserHistory 记录的数量限制为 .. 10 或 5 或其他吗?

我需要为此使用投影吗?可以在没有投影的情况下完成吗?

i've got a really simple linq to entites statement :-

var query = (from q in Users.Include("UserHistory")
            select q).Take(20);

works great ... except that, for each user .. the history can be n+1. Some users have 100's of UserHistory records.

So, can I restrict the the number of UserHistory records to .. 10 or 5 or whatever?

Do I need to use projections for this? Can it be done without projections?

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

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

发布评论

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

评论(1

枯叶蝶 2024-10-01 16:09:36

您无法通过使用 include 来做到这一点,但您可以尝试以下操作:

var query =
    from user in Users
    select new
    {
        user, 
        history = user.UserHistory.Take(20) 
    };

我不确定 EF 是否能够创建其中的一个 SQL 查询。

You can't do this by using the include, but you can try this:

var query =
    from user in Users
    select new
    {
        user, 
        history = user.UserHistory.Take(20) 
    };

I'm not sure whether EF is able to create one single SQL query of of it.

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