2

我是一名年轻的开发人员,并不真正了解访问数据库和从中获取数据的许多不同方法。我知道的一种方法是使用 DataAdaptor 和 SQLcommand 和数据库团队提供的存储过程来连接数据库并将数据填充到 DataTable 中。然后我使用数据表进行处理,或者将其绑定到gridview等以进行显示。

但是当审阅者审阅我的代码时,他说数据表是非常老式的方式。他说他宁愿使用物体或其他东西,但我不知道。

那么有没有更好(或现代)的方式来连接数据库并从中获取数据?这是一个通用问题,与我的程序真正做的事情无关。

4

2 回答 2

3

在 Java 世界已经使用 ORM 多年的 .NET 1.0 时代,它们是一个愚蠢的想法。当 ADO(不是 ADO.NET)发布并且 ORM 已经在 J​​ava 世界中使用并且我在 Visual Basic(不是 .NET)中使用了一个时,它们是一个愚蠢的想法。

学习正确的面向对象编程。几乎所有使用 Datasets 的人都表明他只看过 MS“如何快速制作 UI”的示例,而从未学习过 troper 面向对象的编程实践。

我不会将 15 年的成熟技术称为“现代”。

例如,您应该了解 LINQ。实体框架 - 两者都是 .NET 框架的一部分,而且现在有一段时间了(从 4.0 开始)。

这不是关于“年龄”,而是关于知道你在做什么。并阅读文档一次。当一个“年轻厨师”只知道辣椒时,他不是厨师,他是一招制小马。不知道从数据库中获取数据的所有方法的“年轻”(不是实习生).NET 开发人员不是 .net 开发人员 - 因为他错过了一次阅读文档。询问详细信息是可以的 - 但没有听说过实体框架是......好吧,从未阅读过文档的somoene。

然后再次。ORM 并不新鲜。它们存在于 .NET 1.0 时代,它们存在于旧的 Visual Basic 时代。

于 2012-11-09T09:38:15.637 回答
2

您的同事可能精通诸如 nHibernate 和实体框架之类的 ORM,它们为您的数据库提供了面向对象的抽象。

对象关系映射器安全且自动地执行许多“粘合”任务。足够体面的例子是数据库关系等。

在 MVC 空间中,呈现给服务器的对象通常没有关于底层数据访问结构的信息。

在一些非常有限的情况下,我仍然使用 DataTable。我想我的主要担忧是:-

  • 非常通用的解决方案。不是特定领域的。

将此与旨在执行特定工作的专用课程进行对比。

  • 很多耦合,很多错误检查,或两者兼而有之。

通常,您会希望使用 DataTable 来填充其他内容。要正确执行此操作,您需要检查 NULLS 等,通常使用以下内容:-

string thing = (row["Thing"] == DBNull.Value ) ? string.Empty : (string)thing;

这是繁重、耗时且容易出错的。

不过,大多数情况下,它是人们直接从数据库中提取并在网页上发布的时代的产物。今天,在 n 层产品之间有几个抽象层,而 DataTable 是您从 ORM 获得的花里胡哨的相当差的替代品。

于 2012-11-09T09:52:09.607 回答