- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是 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/
我正在更新我的代码以使用 MongoDB 新的异步 API。 我的一个用法是使用以下方法获取集合的数据大小: return Database.GetCollection("collectionName
我遵循了本教程,但 nuget 包是旧的,现在使用新包 MongoDB.Driver https://www.codeproject.com/Articles/656093/Connecting-Mo
我是 mongodb 的新手,正在尝试在我的应用程序中使用 mongodb 实现存储库模式。所以我的问题是当我使用以下查询查询数据库时: _mongodb.GetCollection(typeof(T
我在 mock 中挣扎IMongoCollection.Find使用 Moq 进行单元测试的方法。 我尝试过的: Mock> mockIMongoCollection = new Mock>();
var users = database.GetCollection("users"); Mongodb.driver 2.0中没有FindAll功能。 最佳答案 你应该找到像 users.Find(
我在 MongoDB.Bson.dll 中遇到 'System.OverflowException'(附加信息:算术运算导致溢出。),当调用 UpdateOneAsync 不知道为什么: CarSpe
这是我的代码: var database = new MongoClient("mongodb://192.168.3.122").GetDatabase("xxxx"); var collect
我将 Mongodb 驱动程序升级到最新的 2.0,我的应用程序过去工作失败并出现以下错误: cannot convert from 'MongoDB.Driver.IMongoCollection<
我是一名优秀的程序员,十分优秀!