.net 中的 mongodb orm/odm?

Posted

技术标签:

【中文标题】.net 中的 mongodb orm/odm?【英文标题】:mongodb orm/odm in .net? 【发布时间】:2014-04-17 21:00:09 【问题描述】:

所以,我开始在我的新应用程序中使用 mongodb 而不是 sql server。 在使用 sql server 时,我做的一件好事是拥有一个 ORM 层,例如实体框架或 DevExpress XPO。 我听说过用于 mongo 的 NoRM,但我查看了 Github 站点,它说它不再维护。所以我想知道是否有人知道当前维护的 ORM/ODM 类型的解决方案,我可以使用 C# .NET 应用程序来封装我的模型类与持久层的交互。

【问题讨论】:

看看github.com/RobThree/MongoRepository 偶然发现了这一点,最近发布了我创建的 odm 的 v1,它不像 EF 那样运行,而是像 mongoosejs。 github.com/bolorundurowb/meerkat 【参考方案1】:

将 Mongo 与 SQL 相同是错误的。将 Mongo 视为一种持久化 c# 模型的方法。 Construct=>Save->Fetch 你需要显示的所有数据应该进入模型。然后使用您的collection.FindAs<ModelType>(SomeQuery) 从数据库中获取它们。

【讨论】:

这就是我对 SQL 的看法。 那么,您是否建议不要考虑在 MongoDB 中使用 ORM 工具?这是因为,您的应用程序已经保存了模型,而 mongo 可以在没有 ORM 的情况下直接持久化/获取它们? 没错。对我们来说,我们为我们的应用程序使用域层。除域模型外,其他层不允许使用模型。因此,如果 Web 层方法需要一些持久数据,它会通过域实体获取它。当我们使用 mongo 时,每个域实体都有一个 Mongo Repo。如果您使用 Mongo C# 驱动程序对域模型进行序列化和反序列化,则不需要其他中间层。我基本上认为它是 Mongo 中的冻结模型。这对我们来说非常有效,您可以制作所需的内容以供以后存储,然后取回您放入的内容。

以上是关于.net 中的 mongodb orm/odm?的主要内容,如果未能解决你的问题,请参考以下文章

使用 MongoDB .Net 驱动程序对存储在文档字段中的数组进行分页

mongodb 笔记

带有 MongoDb 的 ASP.NET Core 3.1 中的身份服务器 4

从 C# .Net 连接 MongoDB

PHP 使用 mongodb

mongoDB5--mongoDB增删改查