现在最常用的从C#访问数据库的方法是什么

时间:2010-07-15 13:05:24

标签: c# database

好的,我问这个问题因为我完全糊涂了。我曾经使用常规方法从C#访问数据库(我的意思是使用SQLConnection,OracleConnection,SQLCommand,executequery等)。然后我听说过ADO.NET,ORM并学习了NHibernate(不是专业人士,但我可以管理)。

最近我没有看到任何关于NHibernate的特定活动。过去常常使用NHibernate(并且是粉丝)的我周围的人现在转向其他方法。

那么现在最常用的数据库访问方法是什么?我怎样才能跟踪这种变化趋势?

7 个答案:

答案 0 :(得分:19)

最常见的方法可能就是:

  • LINQ to SQL
  • 实体框架
  • 直接
  • ADO.NET
  • NHibernate的
  • 其他O / RM。

所有这些产品仍在使用中,它们各有优缺点。我认为微软目前正在努力鼓励人们使用Entity Framework

答案 1 :(得分:10)

只有一种方法 - 用于SQL Server的ADO.NET。更具体地说,那里的Connection和Reader对象。现在,你可能会说像Entity Framework这样的东西 - 但有趣的是它们使用前面提到的两个访问元素,它们位于真正的访问层之上。甚至DataSet也是更高层(数据通过DataReader读取)。

  

那么最常用的数据库是什么   现在的访问方法?

我打赌它仍然是数据集。拖拽原则后未受过教育的数量仍然是恕我直言的大多数,而视觉工作室的这种方法导致了数据集。

专业人士使用各种ORM。实体框架现在被那些大多不了解ORM可以正确编程的人所推动。现在我最好的选择仍然是NHibernate,以获得高质量的图层。

答案 2 :(得分:4)

在我看来,对于快速应用程序开发,使用像LLBLGEN这样的ORM工具是最好的解决方案。您可以大大加快开发进度。

答案 3 :(得分:1)

因此,在.NET中访问数据库的技术很少。 首先,这是ADO.NET。它是一种“真正的”访问技术,因为其他(如NHibernate,LINQ2SQL,实体框架(它们都是ORM))使用ADO.NET实际连接到数据库并对其执行命令。当然,.NET提供了与数据库交互的其他方式,例如,导入一些COM接口,但它们并不自然。

此外,还存在可帮助您与数据库通信的工具。它是ADO.NET扩展(如企业库数据访问),工具允许您使用对象(命名实体),这些对象是面向对象的运行时自然的.NET,但是从数据库加载并保存这些实体。这些名为ORM(对象关系映射器)的工具和现代工具易于使用且非常好。

答案 4 :(得分:1)

我个人喜欢使用CodeSmith生成实体的Linq To Sql,更具体地说,我认为Plinqo最容易扩展。它允许您将所有Entity对象分离为具有可编辑版本和生成版本的单独文件。这允许您使用所需的辅助函数扩展DAL。它有一个Visual Studio加载项,只需单击即可重新生成所有实体。

我通常是数据库第一次设计,所以我在数据库中进行了更改,转到VS重新生成实体,然后我可以继续编码。

无论您选择什么,我认为ORM的一个重要因素是能够配置它以满足您的需求,没有一种尺寸适合所有。

BTW,我不为CodeSmith工作,我只是用它:)

答案 5 :(得分:1)

如果我必须选择一个,我会说实体框架是最通用的方式, LINQ to SLQ将来会被弃用,NHibernate将来会越来越多。

但最好的建议可能是尝试为整个团队挑选一个!即使它有缺点,它们都会在某个时刻或其他地方出现。

答案 6 :(得分:1)

NHibernate和Entity Framework是抽象数据库的好工具(EF Code First很棒),但在某些情况下,这很糟糕。

我见过许多应用程序表示数据库连接性能不佳,NH或EF不允许控制查询或使用数据库的最强大功能,除非您是ORM的专家(不幸的是,不常见)。

就个人而言,我更愿意保持控制权。

我创建了一个工具Thunderstruck,我在项目中使用了该工具,最近我将源代码放在Github上。