【问题标题】:Need recommendations for .Net data access layer for short time table project需要针对短时间表项目的 .Net 数据访问层的建议
【发布时间】:2012-04-13 04:57:16
【问题描述】:

我有一个时间表很短(大约一周左右)的 .Net winforms 项目。我开始编写数据访问层的代码。这不是一项庞大的工作,大约 20 个表,存储在 Sql Server 或本地 MS Access 数据库中。数据访问不是我的专长,所以我想要一些建议。

我上次的经验是使用 .Net 数据集和数据表,这让我知道我已经过了多长时间了。我知道数据集在这一点上已经过时了,它们有时绝对是一种痛苦。我确信 Entity Framework、nHibernate、Linq2SQL 都可能要好得多,我想使用最好的工具——但同样,我只有一周的时间。如果学习曲线太大,那么它可能不可行。我应该硬着头皮坚持使用我所知道的(数据集),还是有更好的工具可以相当快地掌握和实施?

【问题讨论】:

  • .NET winforms、ASP、MVC?
  • 数据集和数据表已经过时了?那时我已经落后了,而且我每天都在积极地使用它们进行开发。
  • @Brad - .Net winforms,我编辑了问题。
  • 用你所知道的。用一周的时间编写代码是一个足够短的时间线,无需处理学习曲线。
  • 对于轻量级 ORM,您可以使用 ModuleStore code.google.com/p/bsn-modulestore(不像其他巨头那么出名,但仍然非常强大)。 Nhibernate 也是一个竞争者,Entity 框架也是一个不错的竞争者。为了速度和较短的学习曲线,我会选择 EF。

标签: .net entity-framework data-access-layer strongly-typed-dataset


【解决方案1】:

有许多令人眼花缭乱的新工具可供使用。所有这些都是很棒的工具,真的,但传统的 ADO.NET 仍然没有任何问题。他们都在某种程度上使用它。

它们提供了出色的工具,例如对象关系映射,并为我们简化了事情,但在某些情况下,它们过于矫枉过正,有时适合这项工作的工具不是“很酷的新事物”,而是经过尝试且真实的东西.

你的的情况下,鉴于你没有时间学习新事物,我真的认为最好还是用你所知道的

【讨论】:

  • 你说的有很多工具是对的——当你的日程安排很紧时,选择“正确的”会有点焦虑。我至少会给 EF 一个机会,但你可以证明是对的,这对于一周的时间来说可能过于雄心勃勃。
【解决方案2】:

我刚刚使用实体框架(测试版 5.1,尽管它适用于 4.2+)在“代码优先”POCO 类中编写了一个数据层。

这意味着您可以在标准 C# 类中编写项目实体(除了一些额外的注释,例如什么属性应该是键),并且您可以获得非常简单的持久性。 Entity 框架创建您的 SQL 数据库,设置所有表和关系,以便您可以立即启动并运行数据访问层。 要存储或检索对象,您需要调用(自动创建的)对象上下文,这感觉就像使用 LINQ 从实体列表中提取对象(实际上它实际上是动态创建 SQL 并查询表)。

这涉及到一些配置,但就像上面一样,它很简单。

请参阅 http://blogs.msdn.com/b/adonet/archive/2011/09/28/ef-4-2-code-first-walkthrough.aspx 作为一个很棒的教程

【讨论】:

  • 暂时将此评为最佳答案。我最关心的是学习曲线,但如果 EF 提供了快速实施的途径,那么我认为值得一试。反正我从来没有爱过数据集。但这是暂定的,因为鉴于一周的最后期限,如果在一两天后进度停滞不前,那么我将不得不退回到我所知道的。
猜你喜欢
  • 2010-11-06
  • 1970-01-01
  • 2011-06-18
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 2010-10-21
相关资源
最近更新 更多