c# - IQueryable 的结构是什么?

标签 c# linq iqueryable

using (var nosql = new DbHelper("Feed")) 
{
    var watch = Stopwatch.StartNew();
    nosql.CollectionName = "rawhi";
    var x = nosql.GetRecords<Event>(p => true, 0, 1000000);
    //GridView1.DataSource = x;
    //GridView1.DataBind();
    watch.Stop();
    long milliseconds = watch.ElapsedMilliseconds;
    Response.Write(milliseconds);
}

xIQueryable 类型的变量。

当我运行这段代码时,结果是:0

所以我想知道数据是否存储在 x var 中?

最佳答案

查询将被惰性评估,因此在尝试枚举结果之前,查询不会真正执行或返回结果。在您的代码示例中,您已经设置了查询,但实际上并没有运行它。如果您将数据绑定(bind)代码放回原处,它实际上会枚举结果并执行它。

出于测试目的,您可以按如下方式强制枚举:

x.ToList();

关于c# - IQueryable 的结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4768940/

相关文章:

c# - 如何在C#中搜索#之间的字符,但不要将#与&#60组合使用

c# - 对字符串值内的数据进行排序

c# - 是否可以手动修改 IQueryable 表达式

.net - 无法将表达式类型 'NHibernate.IQueryOver<T,T>' 转换为返回类型 'System.Linq.IQueryable<T>'

c# - 方向基于 2 个纬度、经度点

c# - 嵌套泛型

c# - c#捕获鼠标点击事件

c# - 我应该如何/应该用一个 linq 查询替换嵌套的 foreach ?

c# - Nhibernate Map 复合元素

c# - 如何根据许多选项确定 VAR?