繁体   English   中英

在继承List的帮助器类中,什么将触发Entity Framework IQueryable查询

What will trigger an Entity Framework IQueryable query, in a helper class that inherits List?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我从书呆子晚餐和其他地方拿来的

public class PaginatedList<T> : List<T> {

    public int PageIndex  { get; private set; }
    public int PageSize   { get; private set; }
    public int TotalCount { get; private set; }
    public int TotalPages { get; private set; }

    public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize) {
        PageIndex = pageIndex;
        PageSize = pageSize;
        TotalCount = source.Count();
        TotalPages = (int) Math.Ceiling(TotalCount / (double)PageSize);

        this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
    }

    public bool HasPreviousPage {
        get {
            return (PageIndex > 0);
        }
    }

    public bool HasNextPage {
        get {
            return (PageIndex+1 < TotalPages);
        }
    }
}

是什么导致IQueryable延迟查询运行? 是因为AddRange接受IEnumerable吗? AddRange本身返回void。

1 个回复

是什么导致IQueryable延迟查询运行?

在内部, List<T>.AddRange枚举IEnumerable ,这将导致查询执行。

如果要推迟执行该操作, 必须重写AddRange 和大多数其他所有List<T>成员以执行查询, 然后传递给基本实现。

我看不到推迟查询的好处。

编辑

我完全错过了Count电话。 这将执行类似的查询(基本上是将原始查询包装在COUNT(*)外部查询中),这也可能是一个问题。 如果查询非常复杂并且需要很长时间来执行计数,那么这也可能是性能问题的根源。

1 如何在LINQ中将Entity类型的自定义属性设置为Entities查询,并且仍然返回IQueryable

我有一个EF4模型,其中有与任务实体(ChildTasks)具有一对多关系的产品实体。 我必须根据某些用户条件从数据库获取一些项目。 该项目有一个名为EstimatedProgress的自定义属性(不与任何列关联),在这里我必须存储有关项目的其他信息-每个子任务的计算加权平均进度。 问题是 ...

2 我如何使用IQueryable 。包括继承

我想我使用TPT继承。 我有一个抽象的父类和三个子类。 我想要的是一个基本的查找功能,但是我需要明确地做包括。 我的问题是如何根据类型包含不同的属性。 每个RandomObject实例都有一个抽象超类的集合。 有固定数量的已知子类(如果需要名称,我们可以将它们称为Subclass ...

5 List 和IQueryable 之间的执行差异

我正在尝试编写一个通用数据库更新方法,该方法可以利用IQueryable在处理之前减少返回实体的数量。 所以对于部分代码,我尝试了这个( b.ToType()返回一个P ): 当我像这样写它时,我得到System.ArgumentNullException: 'Value cannot ...

2018-07-17 21:21:47 2 276   c#/ linq
6 在继承自List的Class中更新它

我有一个用于缓存的抽象类,实现如下(简化) 它允许使用api端点的简单字符串快速创建缓存的对象: 从List&lt;T&gt;继承的全部原因是消除了对字段的需要。 但是,如果我尝试修改构造函数并刷新为: 我收到Cannot assign to &lt;this&gt ...

7 继承自List

实现从List&lt;T&gt;继承的新类的最快方法是什么? 我遇到的一个问题:通过简单地执行(1) ,我发现我没有从List&lt;T&gt;继承任何构造函数的好处。 最后,我希望Animals的行为很像List&lt;T&gt; (例如,可以构建,与Linq兼容)。 但另外, ...

8 在IQueryable上调用查询构建器方法

我正在阅读Julia Lerman的programming_entity_framework_2nd_edition。 这本书说我们可以在ObjectQuery上使用LINQ to Entities方法。 像这样 这是该书的摘录,说我们可以将IQueryable转换为Object ...

10 在IQueryable中搜索

我通过以下这一行从数据库中提取一些数据: 我想在UserList中搜索一些内容,例如: 然后我根据旗帜的状态做一些事情: 有没有简单或实用的方法来使用LINQ或其他东西在IQueryable界面中进行搜索? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM