最容易学习和使用.NET ORM框架?

时间:2009-02-17 17:50:53

标签: .net orm

注意:现在有人提出这个问题,请注意日期。这个问题已接近4年,而且信息相对过时。根据我的经验,NHibernate现在相对容易使用(使用流畅的界面),实体框架是一个合法的竞争者,而像Dapper和Massive这样的MicroORMS正变得非常受欢迎。


我们正在重新编写我们的核心Web应用程序之一,最后我从管理层清楚地了解了用ORM框架替换可怕的存储过程纠结以实现我们的数据访问层。

对我来说很好。现在我必须选择一个。

我用以下内容玩了一下

现在我知道NHibernate是真正的Alt.Netty选择,但问题是我和承包商合作,据我所知,他们从来没有听说过它,而且NHibernate在学习曲线方面享有盛誉。在此期间,亚音速似乎是一种更为直接的方法。我也知道Entities Framework,但我很担心它的'meh'接待和Linq to Oracle,但我很担心我几乎没有听到任何关于它的事实。

所以问题是:

  1. 我还应该考虑更多的框架吗?
  2. 你推荐哪种情况?
  3. 更多考虑因素:

    • 当我说我玩这些框架时,我的意思是。我已经配置了它们并使用它们来提取一些数据以确保它一切正常。这就是它的范围。
    • 这是一个Oracle数据库(正如您可能已经从包含Linq2Oracle中猜到的那样)
    • 由于这是重写,因此数据库已存在且具有稳定的架构
    • 我不太担心表现。我们的申请通常一次最多可供几个人使用。
    • 你们是那些必须回答我将会遇到的大量问题的人

    我倾向于亚力士,但我很好奇人们可能会说些什么。

6 个答案:

答案 0 :(得分:6)

你签出了Telerik's OpenAccess ORM吗?他们最近收购了Vanatec及其ORM产品。它支持多种数据库平台(包括Oracle),LINQ支持,转发和扩展。反向映射,与Visual Studio集成,在我看来(授予我有点偏见)是LINQ to SQL的合适替代品,如果这是你正在寻找的那种“易用性”。

答案 1 :(得分:4)

NHibernate将允许您将域实体与数据层分离。它使用XML映射文件来描述关系,并使用Castle DynamicProxy来实现延迟加载的属性。

NHibernate在性能,灵活性和可配置性方面领先于其他所有人。但是,正如你所说,它很复杂。 SubSonic非常简单,但它基本上是基于您的数据库生成静态代理类,因此您不会真正拥有ORM的RM。 IMO SubSonic,L2S和Castle ActiveRecord都是DAL生成器,而不是ORM。

IMO一切都取决于您的需求。如果您正在谈论2层,那么请选择其中一个DAL生成器。它会让你移动得更快,你的模型可能不是那么复杂,你不能只是从你的数据库模式生成它。如果你有n层,我强烈推荐NHibernate。当然,学习曲线更高(它不是火箭科学,但它也不是按钮),但它实际上可以处理你需要的工作,如果你使用其中一个,你最终会做很多无论如何都要手动填充。

答案 2 :(得分:3)

CoolStorage.NET是我的推荐。如果您坚持使用.NET,那么这是最简单的功能完整解决方案。

答案 3 :(得分:3)

Checkout XmlDataMapper一个简单的免费ORM(LGPL许可证),与其他巨头相比,它的内存占用空间很小。 提供的示例项目应该足够好以便开始。

要集成XmlDataMapper,您需要做的只有4个小步骤

  1. 为表格创建业务实体/ DTO
  2. 使用表格和DTO之间的映射信息创建XML文件。
  3. 在配置中指定DTO和xml文件。
  4. 只需调用DTOConverter.Convert(dataReader)和其他此类方法将您的数据库记录转换为DTO / Business Entity

答案 4 :(得分:2)

我会重新考虑您对Microsoft的实体框架的评估。您可以将DevArt的DotConnect提供程序用作Oracle的解决方案,直到Oracle将来发布自己的提供程序。使用实体框架,您不会使用“Linq to Oracle”,而是使用“Linq to Entities”,这是一个更好的解决方案。

我使用Entity Framework测试读取操作时得到了非常好的结果,其中读取操作比其SqlCommand \ SqlDataReader等效快〜700%。

答案 5 :(得分:1)

考虑ORM时的问题是

  • 找到有关它的好信息。例子,学习材料。
  • 做足够多的人使用它(产品是否成熟)?越多公司使用它就越有可能发现错误。

当我查看.Net的ORM市场时,我发现NHibernate上有越来越多的资料

Links to helpful material about Nhibernate< - 视频,工具和最佳做法

Castle建立在NHibernate的顶部(它使用Active Record模式)

让google查看ORM是否有任何工具可以帮助您更快地发展。

  • Telerick说它带有VS整合
  • Nhibernate有几个工具可以将DB反向工程化为类,还有NHProf(非免费)监视NH和SQL之间的SQL

如果您没有使用XML映射文件,请查看是否可以找到Fleunt映射。这应该意味着编译时检查(有些人发现这更容易调试/重构代码)

fluent nhibernate

HTH