当前位置: 首页 > 编程语言 > C#

使用NoRM在MongoDB中延迟加载分享

时间:2023-04-10 17:07:38 C#

在MongoDB中使用NoRM延迟加载我有一个类似的模型:(简化)放;}公共字符串标题{得到;放;}publicstringBody{得到;放;}publicListAnswers{get;放;}}Answers:publicclassAnswer{publicstringQuestionID{get;放;}publicstringBody{得到;放;我计划将数据存储在MongoDB中并希望使用NoRM。我的问题是:是否支持延迟加载?或者我可以将它设置为在文档存储上进行延迟加载..?所以请求一个问题,也检索答案..?(两者都是存储在MongoDB同一集合中的“帖子”)好吧,“延迟加载”的概念对于像MongoDB这样的数据库来说是陌生的。查看您的模式:问题有一个答案列表。在RDBMS中,“惰性”部分允许您加载与原始文件分开的“列表”。实际上有两个查询发生,您只是想延迟第二个查询。在MongoDB中,只发生一次查询。答案嵌入在问题中,因此您的问题请求将自动包含一个答案列表。查看NORM示例以获得更好的示例:http://normproject.org/samples基本点是您提供的结构不再是多个表。它只是一个带有嵌入式文档的集合。所以“延迟加载”的概念其实是不必要的,因为你不能“延迟加载”一个查询。我很欣赏这是一个旧线程,但其他人可能仍然会找到它(比如我)。延迟加载在MongoDB中都是可能的,并得到C#驱动程序的支持。查看以下类:LazyBsonDocument和LazyBsonArray来自C#DriverTutorial文档:“惰性类的特殊之处在于它们将BSON的反序列化推迟到需要时。当您只需要复杂文档中的一个或两个字段时,这很有用,因为它不会产生反序列化整个文档或数组的成本,而只会产生必要的部分。这种反序列化一次发生一个级别。“在撰写本文时,可以在此处找到教程文档:http://docs.mongodb.org/ecosystem/tutorial/use-csharp-driver/给出的示例与涉及嵌套集合的问题非常相似,因此看起来答案列表确实可以在需要时延迟加载。希望这对某人有所帮助,Gap以上是C#学习教程:使用NoRM在MongoDB中延迟加载分享全部内容,如果它对您有用并且需要了解更多更多关于C#学习教程,希望大家多多关注——本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如有转载请注明出处: