7

我只是在阅读有关 Linq to SQL 已停产的信息。有一段时间我完全推迟了学习 Linq。即使在 asp.net 上,当我上次检查时,他们的数据访问教程也在使用表适配器和 bll 类。然后是 linq 教程。现在我已经阅读了这篇文章并且实体框架是新的发展方向,这是否意味着我已经阅读了一年半的所有 Linq“东西”,它有多棒等等,就是这一切刚走了?似乎从来没有人决定以正确的方式做事,或者至少是一些使用 MS 产品的标准方式。我知道你不能说一种方法对所有事情都是正确的。但是,在这种特殊情况下,我不明白为什么不能对数据访问进行一些解决。

或者,Linq To SQL 只是 Linq 的 ORM 部分?如果我想使用 ORM,我现在究竟会学到什么?我在 StackOverflow 上读过几篇文章,但没有一篇能真正帮助我知道该怎么做。

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

谢谢你。

4

6 回答 6

13

不。

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

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

于 2009-03-30T15:00:03.117 回答
10

实体框架当然并不意味着 LINQ 会消失 - 实体框架本身就是一个 LINQ 提供者!

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

LINQ to SQL 只是该模式的一个示例。对于它的价值,我认为 LINQ to SQL 正在被淡化而不是真正消失,但我们会看到......

我个人首先发现 LINQ to Objects 是最有用的 LINQ 提供程序 :)

于 2009-03-30T15:02:19.820 回答
5

Linq to sql 只是众多 linq 提供程序之一(有 linq to db4o、linq to starcounter、linq to objects、linq to ado 等等)。实体框架有自己的 linq 提供者,称为 linq to enteties。您阅读 linq 的这一年并没有丢失。

于 2009-03-30T14:59:44.663 回答
3

Linq 不仅仅是 Linq-to-SQL。例如,像 Linq-to-Objects 和 Linq-to-XML 这样的东西是该技术的一部分。

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

于 2009-03-30T14:59:42.900 回答
2

LINQ 并没有消失。LINQ to SQL 也没有,但它不是 Microsoft 的数据访问战略平台,它是实体框架。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;

是(概念上)有效的,即使这里的代码示例有缺陷。

于 2009-03-30T15:00:46.063 回答
0

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

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

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

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

于 2009-03-30T15:29:46.260 回答