贵公司用于数据库访问和映射的是什么?这会让你开心还是悲伤?

时间:2010-10-15 02:40:45

标签: .net entity-framework nhibernate ado.net

我从一家中等规模的金融公司开始,一切都是使用自酿的ORM完成的。我最近搬到了网上商店,它是ADO.NET和linq到sql的混合体。我想知道其他人在他们的商店使用了什么,为什么?你对此感到高兴,还是希望你使用其他方法?

  • 自己动手使用ADO.NET(sqlconnection,sqlcommand)
  • linq to sql
  • 实体框架
  • nHibernate(或其他非微软ORM)

我不是要开始一场火焰战。这个问题不是关于EF或nHibernate是否是一个更好的ORM,它只是你在公司使用的。我认为了解其他人在现实世界中实际使用的内容很有意思。

3 个答案:

答案 0 :(得分:3)

我在Microsoft的SQL Server小组工作,并且推荐的是使用Entity Framework而不是Linq到Sql或ADO.net(不过我的工作不是代表公司发言,所以不要拿这个作为最终的官方词语。)

就个人而言,到目前为止,我在项目中只使用过ADO.net和LINQ to SQL(许多遗留代码),但我认为Linq to SQL比ADO.net好得多,而且我认为了解了Entity Framework,它使用起来更加强大和方便,所以我将把它用于所有未来的数据库开发。

答案 1 :(得分:1)

前两个不再是一个选项。不使用“自己动手使用ADO.NET”的原因很明显,但对于LINQ to SQL,我应该提到的是,在2008年11月,ADO.Net团队宣布,因为EF& L2S针对同样的问题,未来他们将专注于开发EF,它通过使用EDM与微软即将推出的许多技术保持一致。尽管微软致力于维护L2S并且没有就弃用它做出任何陈述,但很好地表明L2S正在退休之中,微软将在未来的程序员指南中强烈推荐EF而不是L2S。
nHibernate是EF的一个很好的“替代方案”,但问题是知道并且可以用nHibernate维护项目的资源可能很难在市场上找到并且可能导致问题。特征明智,我认为比较这两者是不公平的,因为EF是一个相当新的,2年前的技术,但是nHibernate是一个成熟的ORM,其根源在于Java Hibernate框架已经存在了很多年。

答案 2 :(得分:0)

我不知道它是否有帮助,但看起来你可以根据它们的大小,需求,复杂性,限制等在不同项目中使用其中任何一种......只使用一种可能不是最好的方法。 ..我们使用混合物,希望为项目选择最佳选择,这让我很开心......

虽然它不合适但你很快意识到了!