应该使用哪个微型 ORM?

51

正在尝试在 DapperMassivePetaPoco 之间做出选择。我喜欢 Dapper 的简洁性,喜欢 Massive 的灵活性和 PetaPoco 中的 POCO 支持,但目前还没有决定下一个项目要选择哪一个。

我意识到,在很大程度上这是个人品味的问题,但认为从那些尝试过这些库(或文件或框架)中的多个的人那里听取一些意见将是有价值的。


3
有人会顺道过来投票给 Dapper,只是因为它在这里被使用了。 - BoltClock
能否提供一些关于你的下一个项目的细节,因为现在这个问题是主观的? - Darin Dimitrov
35
我认为这很有趣,应该重新开放。 - Larry
我详细阐述了那些微型ORM和Microsoft Entity Framework。我发现,这些微型ORM通常缺乏文档、功能或积极的开发。请查看我的答案,以获取更完整的解释,为什么我推荐使用MS Entity Framework而不是微型ORM:http://stackoverflow.com/questions/6997046/an-orm-for-sqlite-net-for-small-applications/14296875#14296875 - OneWorld
提供 SQL Data(http://sqldata.codeplex.com)。它非常快速且易于使用。(声明 - 我是 SQL Data 的作者) - xcopy
在ORM方面,我从来不是“不要预先优化”的粉丝。如果性能是一个问题,你如何轻松地因素出整个DAL呢?我发现PetaPoco是100%手写代码和完整ORM之间的一个很好的折衷方案。它允许简单的CRUD操作比手动编写SQL / SP更容易完成,但它也允许手写查询需要复杂的逻辑。使用MSIL的性能非常好。 - ChandlerPelhams
3个回答

27

尝试决定你提到的功能 - 简单性、灵活性、POCO支持 - 在一年后哪一个对你和你的项目最有用。哪一个最可能使你的工作更轻松?

然后你就有了答案。如果你仍然无法选择,那就选择Dapper(只是我随意选择的)如猫头鹰所说,如果你真的不知道自己想去哪里,那么选择哪条路都无所谓。


19
对于Cat提到的参考,我给出一个赞同。你说得对。我猜我暗自希望至少有两个尝试过这些方法的人发表一下意见。 - georged

8

PetaPoco的文档似乎比其他文档更成熟。使用它似乎是最安全的选择。


1
同意PetaPoco可能比其他两个项目得到的关注要少一些。看起来在一个小项目上试用它们是比较的最好方式。 - georged
我认为它的优点之一是简单易用(类似于 .net 4 上的 Massive)。更少的代码意味着更容易解决问题。我会尝试使用 T4 来避免过多使用“魔术字符串”,就像我在 BLToolkit 中所做的那样。 - Robert Koritnik

1

我还没有尝试过那些。默认情况下,我总是基于生成的客户端代码行数和类型安全来做决策。当然,还有其他一些指标需要考虑,但如果你的项目没有受到任何特殊(奇异)要求的限制,这两个指标通常是适用的。 顺便说一句,我知道我的回答可能会引起争议;)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接