ORMwithNoSQLAPI是多余的?使用MongoDB查询数据库的方法比SQL简单得多(我假设其他NoSQL数据库API值得一试)。无需生成繁琐的SQL查询等。例如,来自mongodb-csharp:usingMongoDB.Driver;Mongodb=newMongo();数据库连接();//连接到默认端口上的本地主机。文档查询=newDocument();查询[“字段1”]=10;文档结果=db["tests"]["reads"].FindOne(query);db.Disconnect();ORM如何简化这个?在体面的NoSQLAPI之上是否需要ORM或其他“数据库抽象设备”?嗯,是的,对象关系映射器对MongoDB来说是多余的,因为MongoDB不是关系数据库,它是面向文档的数据库。因此,您不用SQL,而是用JSON编写查询。除非你真的非常想写原始JSON,而不是Linq,否则你仍然想使用映射器。如果您不想创建与MongoDB本身的耦合,那么您不想传递实际的Document对象,而是将它们映射到真正的POCO。对于像MongoDB这样的面向文档的数据库,映射要容易得多,因为您有嵌套的文档而不是关系,但这并不意味着它完全消失了。这只是意味着您已将一种类型的“阻抗失配”替换为另一种稍微不那么显着的失配。我认为MongoDb上的“ORM”非常有用,不仅可以将对象“序列化”和“反序列化”到数据库(Norm似乎做得很好),还可以更轻松地执行聚合查询。如果“ORM”可以生成用于分组和检测重复项的MapReduce作业,那就太好了。有人写代码自动将sql语句转换为mapreduce作业:http://rickosborne.org/blog/index.php/2010/02/19/yes-virginia-thats-automated-sql-to-mongodb-MapReduce看看Kundera:https://github.com/impetus-opensource/Kundera,ORM优于mongodb、cassandra、HBase。另一个解决方案是PlayOrm,它可以在必要时使用其Scalable-SQL语言进行连接(只需在普通SQL中添加前缀即可添加分区信息)。取决于NoSQL数据库提供的驱动程序的成熟度。此链接讨论了ORM工具与NoSQL数据库的相关性:http://xamry.wordpress.com/2012/08/10/sqlifying-nosql-are-orm-tools-relevant-to-nosql/你真正需要的只是一个序列化器/反序列化器来完成这项工作。诺姆做得很好。直接使用poco对象更简单,一行代码保存到mongo即可。他们称Norm为ORM,但它实际上只是包裹在dictionarymongo周围的poco。一个orm只是这些动作的额外仪式。如果您的数据操作被抽象到存储库中,那么它就不是问题,因为到另一个后备存储的转换是逐个对象进行的。以上就是C#学习教程:ORM使用NoSQLAPI是多余的吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
