2011-11-14 24 views
1

假设微软说我们都应该使用实体框架,使用LINQ(to Entities?)作为查询语言。SQL Server应该本机支持LINQ查询语言吗?

如果LINQ作为查询语言是对SQL的改进,那么我说数据库应该原生支持它,而不是将LINQ转换为SQL。

为了向后兼容,他们可能还想支持古老的SQL呢?鉴于这不会是一个小小的增强,我不会屏住呼吸。但是,如果我们想到的理想和非常长期,为什么不呢?

我是否认为如果实用这将是一件好事?我期待“是”作为可能的答案,并且有几个选票可以结束。

回答

2

SQL与relational data model(投影,连接等)紧密相关,而LINQ是执行仅抽象查询的数据操作的更一般化的方式。另一方面,LINQ直接在.Net类型上运行,并使用它们的方法和属性,而SQL data types(除了xml和地理/几何)是大多数原始数据类型,不支持任何种类的OOP。

这解释了为什么有许多查询不能直接从LINQ转换到SQL,并且本机对LINQ的支持不会改善这种情况。

但是,编写支持LINQ查询的解析器,将直接将LINQ查询转换为query plan,作为经典SQL的替代方案,LINQ旨在提供更好的智能感知支持。

+0

我想我的反应是,LINQ语法仍然可以在数据库中实现,以与LINQ当前对.NET对象起作用的相同方式处理数据库对象。我正在大声思考,并希望得到别人对这个问题的想法。很好的答案。 – ChadD