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

标签 c# mongodb orm abstraction nosql

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

关于c# - ORM 与 NoSQL API 是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694044/

相关文章:

java - 如何在 Hibernate 中使用单独的队列填充实体的字段?

c# - 检测人脸位置

c# - 如何设置测试项目(命名空间、有用的辅助对象等)?

c# - Mongodb 约定包

java - 使用 JPA 和 Spring 加载选定的 Hibernate 实体

.net - 提高 NHibernate 性能的最佳方法是什么?

c# - 自定义 SimpleMembership

c# - Xml 反序列化附加到列表

node.js - 如何设置 Mongoose 模式来在 MongoDB 中存储对象数组?

java - 如何使用Morphia框架在mongoDB项目中添加索引