我应该用什么标准来评估ORM ?



这里有很多问题是问"x和y应该使用什么ORM",但我没有看到任何问题是专门问如何选择一个。相关:为什么要使用ORM?我应该为ASP使用什么ORM ?. Net MVC项目?是否有很好的理由不使用ORM?和更多。

世界上有很多orm。我想知道如何比较它们。我听说过活动记录模型和领域模型之类的东西,但我不确定它们是什么意思。那么,我可以使用哪些标准来比较一个ORM与另一个ORM呢?

我们的环境,如果你想知道,是c#, MVC, SQL Server。

(我试着用非。)

选择ORM最重要的标准是您的业务需求。

我想说,另一个重要的标准是你对ORM未来可持续性的信念。微软倾向于每两年左右改变一次他们的数据访问技术,所以我想说实体框架的未来是不明朗的。NHibernate可能会走和NUnit一样的道路——当微软发布MSTest时,NUnit萎靡了一段时间,但现在NUnit又有了动力,因为微软基本上忽略了MSTest。你必须在这里得出自己的结论,现在微软似乎给了实体框架一些爱,但据我所知,它仍然不能很好地处理枚举,我还没有听说什么时候会改变。

另一个标准是你是否偏爱开源技术、微软技术或商业第三方技术。

在某种程度上,ORM的特性很重要。您可能需要使用多个ORM对您的场景进行原型化,以确定ORM的特性(和/或性能)是否符合您的需求。NHibernate是。net领域功能最丰富的ORM。

是否需要支持某个数据库供应商?选择一个支持您所关心的ORM。SQL Server是。net世界中被最广泛支持的数据库供应商。

你喜欢代码优先还是数据库优先的设计?选择一个支持您所关心的ORM。

你在活动记录、存储库和其他东西之间有偏好吗?选择一个支持您所关心的ORM。

我回答了下面关于选择。net ORM的部分问题,提供了人们在StackOverflow上应该使用哪个。net ORM的所有时间的链接。从阅读这些回答中可以获得很多价值。

NHibernate, Entity Framework, active records or linq2sql

没有一个正确的答案,也没有一组正确的选择标准。您的业务需求是需要考虑的最重要的因素。

最新更新