相关疑难解决方法(0)

DISTINCT()和ORDERBY问题

我正在学习LINQ-to-SQL,一切都很顺利,直到发生奇怪的事情:

我试着做一个例子distinct,所以,使用Northwind dabatase我写了以下查询:

var query = 
    from o in db.Orders
    orderby o.CustomerID
    select new
    {
        o.CustomerID
    };
Run Code Online (Sandbox Code Playgroud)

如果我打印LINQ-to-SQL为其中存储的查询生成的SQL,query则如下所示:

SELECT [t0].[CustomerID]
FROM [dbo].[Orders] AS [t0]
ORDER BY [t0].[CustomerID]
Run Code Online (Sandbox Code Playgroud)

所以,像往常一样,查询把所有的CustomerID每一个OrderOrders按字母顺序排序表.

但!如果我使用这样的Distinct()方法:

var query = (
    from o in db.Orders
    orderby o.CustomerID
    select new
    {
        o.CustomerID
    }).Distinct();
Run Code Online (Sandbox Code Playgroud)

该查询带来了该Distinct子句的预期结果,但是CustomerID尽管我写了,但是没有订购orderby o.CustomerID!

第二个LINQ查询的SQL查询如下:

SELECT DISTINCT [t0].[CustomerID]
FROM [dbo].[Orders] AS [t0]
Run Code Online (Sandbox Code Playgroud)

我们可以看到**该ORDER BY条款缺失.这是为什么?

ORDER BY当我使用该Distinct() …

.net c# linq linq-to-sql

22
推荐指数
2
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

linq ×1

linq-to-sql ×1