加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:14:42 所属栏目:百科 来源:网络整理
导读:我有一个类似的模型: (简化的) 题: public class Question{ public string QuestionID { get; set; } public string Title { get; set; } public string Body { get; set; } public ListAnswer Answers { get; set; }} 回答: public class Answer{ public
我有一个类似的模型:
(简化的)

题:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读