c# - 使用 NoRM 在 MongoDB 中延迟加载

标签 c# mongodb lazy-loading norm

我有一个类似这样的模型: (简化)

问题:

public class Question
{
    public string QuestionID { get; set; }

    public string Title { get; set; }
    public string Body { get; set; }

    public List<Answer> Answers { get; set; }
}

回答:

public class Answer
{
    public string QuestionID { get; set; }
    public string Body { get; set; }
}

我打算将数据存储在 MongoDB 中,并希望使用 NoRM有了这个。

我的问题是:是否支持延迟加载?或者我可以将它设置为在文档存储上进行延迟加载......?

所以请求一个问题,也检索答案..? (两者都将是存储在 MongoDB 上同一集合中的“帖子”)

最佳答案

好的,“延迟加载”的概念对于像 MongoDB 这样的数据库来说是陌生的。查看您的架构:Question 有一个 ListAnswers

RDBMS 中,“惰性”部分允许您加载与原始列表分开的“列表”。实际上有两个查询发生,您只是想延迟第二个查询。

MongoDB 中只有一个查询发生。 Answers 嵌入问题内部,因此您对 Questions 的请求会自动包含 Answers 列表。

请查看 NORM 示例以获得更好的示例:http://normproject.org/samples

基本点是你提供的结构不再是多表。它只是一个包含嵌入式文档的集合。所以“延迟加载”的概念真的是不必要的,因为你不能“延迟加载”一个查询。

关于c# - 使用 NoRM 在 MongoDB 中延迟加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989791/

相关文章:

c# - 从 Index.cshtml 以外的 MVC Razor View 调用时,Ajax 调用失败

c# - 如何将 string[] 转换为 list<int>?

python - 如何将 Pymodm 对象转换为 JSON?

node.js - Visual Studio 2015 Node.js 工具 - 无法安装 mongodb 2.x 包 - 文件名长度为 260

Python 3 可迭代惰性 block 获取

c# - 如何使用 C# 从数据库中检索多个图像

c# - 在 json 反序列化期间确定类型

arrays - MongoDB 使用动态键搜索嵌套文档?

ios - 使用 SDWebImageManager 在 UICollectionView 中延迟加载图像

c# - EF加载层次结构的最佳方式(需要所有项目)