cho*_*bo2 15 .net linq database ado.net linq-to-sql
我一直在想这个问题.好像现在有这么多方法,我不知道什么时候用什么?或者,如果有一点可以学习它们.就像我不知道他们是否基本上做了所有相同的事情,只是基本上坚持一个,直到你掌握它,然后可能看看其他的.
所以,当我参加一个属于我的课程的ASP.NET课程时.
我们首先做了ADO.NET,我们在代码中用SQL语句编写了所有内容.然后我们转向了3层架构.这是通过制作类似的类并使用返回内容的数据集来完成的.
SQL是在类中编写的.我个人从来没有真正喜欢这种方式,因为我总是发现它很烦人,试图得到正确的报价,只是总体上不喜欢它.
然后我在Asp.net网站上找到了我真正喜欢的3层拱门教程.他们使用类型化数据集.您将数据集文件添加到DAL文件夹,您将通过GUI创建表适配器和东西.然后你会在这些GUI中编写代码,我发现它是完美的解决方案,因为现在我的SQL代码远离我的代码而且我不必担心引号和所有那些不正确的东西或关闭连接和东西加上它甚至有一个SQL GUI构建器!
然后我只需要在BLL文件夹中创建文件并创建一个属性来获取表适配器并编写我的业务层逻辑.
我唯一不喜欢的是因为它是键入的,如果我的东西试图返回一些新的行,它会发疯.
因此,当我不得不连接表时,我通常不得不制作一个新的表适配器.
现在似乎有这么多.
我不确定是否所有这些都可能不是.
在写这篇文章之前,我做了一个快速检查,看看linq到sql是什么,并看到一些帖子说MS正在杀掉它.他们来自2008年,所以我不知道这是否真实,但我注意到几乎所有的MVC书籍都像linq一样使用sql所以我认为不是.
那么是否值得切换到不同的类型然后输入数据集?或者每个都用于不同的情况?
mar*_*c_s 22
LINQ本身只是一种基础技术("语言集成查询"),它融入了C#3.0 - 它本身与数据库无关.LINQ可用于各种事物 - 数据库,XML,内存中的对象,实体框架实体,Active Directory - 您可以命名它.
Linq-To-SQL是一种轻量级,简单易用的MS-SQLServer技术,它允许您轻松地将SQL Server表用作.NET应用程序中的真实对象.它是一个"对象关系映射器",可以更轻松地处理数据库.它只是SQL Server,微软不会进一步扩展它 - 它也可以在.NET 4.0中使用,但不会再进一步开发了.
ADO.NET是.NET中的基础数据访问技术 - 它允许您访问各种各样的数据存储,关系和非关系.这是非常基本的技术 - 您以非常低级的原始方式处理数据.
最重要的是,您拥有ADO.NET数据集,它们有点像Linq-to-SQL,因为它们使得处理数据库变得更加容易.与Linq-to-SQL相反,您不是在.NET代码中处理域模型中的对象,而是处理面向数据库的行和列,就像它们存在于数据库中一样.它更直接地表示数据库中的内容,它位于较低级别,它与数据库布局紧密耦合,并且它不像Linq-To-SQL对象那样"好"且易于使用 - 您处理的是低级别的行和列及其值.
如果您现在可以选择,除了SQL Server之外不需要任何东西,我强烈建议您查看Linq-to-SQL - 从原始数据库表到漂亮且易于使用的.NET对象的映射真正让您的生活一件容易的事!
渣
Mar*_*ell 12
澄清LINQ-to-SQL的故事; 它不是"死" - 它是.NET框架的一个完全支持的部分,并且在积极的开发中(Redmond有一个LINQ-to-SQL团队).
关键是新功能开发主要是进入EF,包括(希望)弥合LINQ-to-SQL(通常非常流行)和EF(在很多方面受到批评)之间的差距.
例如,4.0 in中的EF支持POCO对象,如LINQ-to-SQL.
就个人而言,我仍然是LINQ-to-SQL的粉丝,并乐意将其用于新版本 - 但我会将所有这些隐藏在存储库界面后面,以便我可以随意交换任何工具:
我不接触的一件事是DataSet:-p