我是一名年轻的开发人员,并不知道许多不同的方法来访问数据库并从中获取数据。我知道的一种方法是使用带有SQL命令的DataAdaptor和数据库团队提供的存储过程来连接数据库并将数据填充到DataTable中。然后我使用数据表进行处理,或将其绑定到gridview等以用于显示目的。
但是当审稿人审查我的代码时,他说数据表是非常老式的方式。他说他宁愿使用物品或东西,但我不知道。
那么有更好(或现代)的方式来连接数据库,并从中获取数据吗?这是一个通用的问题,并不应该与我的程序真正的作用有关。
答案 0 :(得分:3)
在.NET 1.0时代,当Java世界已经使用ORM多年时,它们是一个愚蠢的想法。当ADO(不是ADO.NET)发布并且ORM已经在Java世界中使用时,它们是一个愚蠢的想法,我使用的是Visual Basic(而不是.NET)。
学习正确的OO编程。任何使用数据集的人都表示他只看到了MS“如何快速创建UI”的例子而且还没有学过trpoper面向对象的编程实践。
我不会把15年成熟的技术称为“现代”。
例如,你应该知道LINQ。实体框架 - 两者都是.NET Framework的一部分,现在已经有一段时间了(从4.0开始)。
这不是关于“年龄”,而是知道你做了什么。并阅读文档ONCE。当一个“年轻厨师”只知道胡椒他不是厨师时,他就是一个小伎俩。一个“yount”(不是见习).NET开发人员不知道从atabase中获取数据的所有方法都不是.net开发人员 - 因为他错过了阅读文档ONCE。询问详细信息是可以的 - 但是没有听说过实体框架......好吧,索默从未阅读过文档。
再一次。 ORM不是新的。它们存在于.NET 1.0时代,它们存在于旧的Visual Basic时代。
答案 1 :(得分:2)
您的同事可能精通ORH,如nHibernate和Entity Framework,它们为您的数据库提供了面向对象的抽象。
对象关系映射器安全且自动地执行许多“粘合”任务。足够充分的例子是数据库关系等。
在MVC空间中,呈现给服务器的对象通常没有关于底层数据访问结构的信息。
我仍然在一些非常有限的情况下使用DataTable。我想我关键的问题是: -
将此与专门针对执行特定工作的专门课程进行对比。
通常,您会希望使用DataTable填充其他内容。要正确地执行此操作,您需要检查NULLS等,通常使用以下内容: -
string thing = (row["Thing"] == DBNull.Value ) ? string.Empty : (string)thing;
这是繁重,耗时且容易出错的。
但大多数情况下,这是人们直接从数据库中提取并在网页上抨击它的日子。今天,在n层产品之间有几层抽象,而DataTable是从ORM中获得的花哨的替代品。