gpt4 book ai didi

c# - IMongoCollection.AsQueryable() 是否延迟?

转载 作者:可可西里 更新时间:2023-11-01 09:40:07 25 4
gpt4 key购买 nike

我是 mongodb 的新手,正在尝试在我的应用程序中使用 mongodb 实现存储库模式。所以我的问题是当我使用以下查询查询数据库时:

_mongodb.GetCollection<T>(typeof(T).Name.ToLower()).AsQueryable();

它会将所有记录都提取到内存中,还是结果是一个延迟集合,当我对其进行迭代或对其使用 ToList 时,它会获取数据?

最佳答案

它被推迟了。除非您请求数据或对其执行操作,否则它不会将结果提取到内存中。正如您提到的示例 .ToList().First().Count() 或对其进行迭代。

编辑:

即使可能没有记录,您也可以通过简单的测试来证明这一点。为 mongodb 启用日志记录并执行您在问题中提到的行;你不应该看到查询。然后在另一行中执行 .ToList() ,您将在日志中看到查询。

the official documentation 启用日志记录(示例) :

var settings = new MongoClientSettings
{
ClusterConfigurator = cb =>
{
var textWriter = TextWriter.Synchronized(new StreamWriter("mylogfile.txt"));
cb.AddListener(new LogListener(textWriter));
}
};

关于c# - IMongoCollection.AsQueryable() 是否延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37154490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com