c# – 使用NoRM在MongoDB中进行延迟加载

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

题:

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上相同集合中的“帖子”)

解决方法

好吧,“Lazy Loading”的概念对于像MongoDB这样的数据库来说大多是陌生的.看看你的架构:问题有一个答案列表.

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

在MongoDB中,只有一个查询发生.答案内嵌在问题内部,因此您的问题请求会自动包含答案列表.

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

基本点是您提供的结构不再是多个表.它只是一个包含嵌入式文档的集合.所以“懒惰加载”的概念实际上是不必要的,因为你不能“懒惰加载”一个查询.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...