LinqToSQL和Linq一样吗?

时间:2009-03-30 14:55:21

标签: linq nhibernate orm data-access

我刚刚读到关于Linq to SQL被停用的内容。有一段时间我完全放弃学习Linq。即使在asp.net上,当我上次检查时,他们的数据访问教程也在使用表适配器和bll类。然后是linq教程。现在我已经读过这个并且实体框架是新的方式,这是否意味着我已经阅读了一年半的所有Linq“东西”,它有多棒,等等,就是这一切刚走了?似乎没有人能够以正确的方式解决问题,或者至少采用MS产品的标准方法。而且我明白你不能说一种方法适合一切。但是,在这种特殊情况下,我不明白为什么不能解决数据访问问题。

或者,Linq To SQL只是Linq的ORM部分吗?如果我想使用ORM,我现在究竟会学到什么?我已经在StackOverflow上阅读了几个内容,但没有一个真正帮助我知道该怎么做。

似乎nHibernate可能比任何微软的选择更好。是的,我知道还有其他人(亚音速,其他人在各种SO问题中被提及。)

谢谢。

6 个答案:

答案 0 :(得分:13)

没有

LINQ to SQL构建于LINQ之上,LINQ是.NET 3.5 Framework中基本的附加语言功能之一。

从技术上讲,其他ORM可以实现自己的LINQ系统,例如,NHibernate已经有LINQ到NHibernate。这是在框架中提供的那些之上,例如LINQ to XML,LINQ to Objects等。

答案 1 :(得分:10)

实体框架当然并不意味着LINQ即将消失 - 实体框架本身就是LINQ提供商!

LINQ是一整套技术,不仅如此 - 它还是一个模式,您也可以为自己的数据提供者实现。

LINQ to SQL只是该模式的一个示例。对于它的价值,我认为LINQ to SQL不再被强调而不是实际消失,但我们会看到......

我个人认为LINQ to Objects是最有用的LINQ提供者:)

答案 2 :(得分:5)

Linq to sql只是众多linq提供商中的一个(有linq到db4o,linq到starcounter,linq到对象,linq到ado以及很多,还有更多)。实体框架有自己的linq提供程序,名为linq to enteties。关于linq的阅读年份不会丢失。

答案 3 :(得分:3)

Linq远不止Linq-to-SQL。例如,Linq-to-Objects和Linq-to-XML之类的东西就是这项技术的一部分。

我怀疑他们会离开!手指交叉。 ; - )

答案 4 :(得分:2)

LINQ还没有消失。 LINQ to SQL也没有,但它不是微软的数据访问战略平台,那就是Entity Framework。 EF使用LINQ to Entities,所以如果你花时间学习LINQ,它仍然有效且有用。

LINQ不是特定于产品的技术。很容易利用(几乎)所有类型的集合的功能和灵活性。例如

List<MyType> myList = new List<MyType>();
// populate the list here
var filteredResults = from o in myList
                      where o.property == "hello world"
                      select o;

是(conceptualy)有效,即使此处的代码示例存在缺陷。

答案 5 :(得分:0)

LINQ是一个用于处理数据序列的库。它非常棒。 这些数据序列可以是实现IEnumerable的任何数据,也可以是适配器提供的任何序列。

Linq to SQL是一个适配器,它允许SQL数据库提供与LINQ兼容的数据序列。

还有一个Linq to XML,它是一个适配器,允许您将XML文档视为一系列数据,允许LINQ处理它。

LINQ只是一种查询语言,它的功能非常出色。它与数据库或SQL无关。为了能够轻松处理内存中的集合,绝对值得学习。