c# - ORM 与 NoSQL API 是多余的吗?

使用 MongoDB(我认为其他 NoSQL 数据库 API 值得一试)查询数据库的方式比 SQL 简单得多。无需生成繁琐的 SQL 查询等。例如从 mongodb-csharp 获取这个:

using MongoDB.Driver; 
Mongo db = new Mongo(); 
db.Connect(); //Connect to localhost on the default port. 
Document query = new Document(); 
query["field1"] = 10; 
Document result = db["tests"]["reads"].FindOne(query); 
db.Disconnect();

ORM 怎么能简化呢?在体面的 NoSQL API 之上是否需要 ORM 或其他“数据库抽象设备”?

最佳答案

嗯,是的,对象-关系映射器对于 MongoDB 来说是多余的,因为 MongoDB 不是一个关系数据库,它是一个面向文档的数据库。

因此,您可以用 JSON 编写查询,而不是 SQL。除非你真的,真的想要编写原始 JSON,而不是 Linq,那么你仍然会想要使用映射器。如果你不想创建与 MongoDB 本身的耦合,那么你不想传递实际的 Document 对象,你想将它们映射到真正的 POCO。

使用像 MongoDB 这样的面向文档的数据库,映射要更容易,因为你有嵌套的文档而不是关系,但这并不意味着它会完全消失。这只是意味着你用一种“阻抗失配”代替了另一种稍微不那么戏剧性的失配。

https://stackoverflow.com/questions/2694044/

相关文章:

mongodb - 为什么我不能使用 Homebrew 更新到最新的 MongoDB?

mongodb - Mongo 组并推送 : pushing all fields

mongodb - mongo的命令行身份验证失败

bash - 设置 Mongodb 文件夹的读/写权限

mongodb - 如何查找具有相同字段的mongo文档

mongodb - 如何从 tar.gz 文件安装 Robomongo 作为 Ubuntu 15.1

ruby-on-rails - Heroku 的 Rails、Mongoid 和 Unicorn 配

mongodb - Mongorestore 不知道如何处理文件 "db/collection.bs

javascript - Mongoose 填充嵌入式

node.js - Mongoose 嵌套对象数组中的唯一值