微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐