C# 将LINQ MIN()函数与联接一起使用

C# 将LINQ MIN()函数与联接一起使用,c#,linq,C#,Linq,我试图获得每个客户根据时间戳下的第一个订单 下面是一些未编译的伪代码: var minOrders = (from Orders in DataSet.Orders select Orders.OrderTimestamp).Min() join Customers in DataSet.Customers on Orders.CustomerId equals Customers.CustomerId select new

我试图获得每个客户根据时间戳下的第一个订单

下面是一些未编译的伪代码:

var minOrders = (from Orders in DataSet.Orders select Orders.OrderTimestamp).Min()
                 join Customers in DataSet.Customers on Orders.CustomerId equals Customers.CustomerId
                 select new
                 {
                    Customers.Name,
                    Orders.OrderAmount
                 });
任何关于正确LINQ结构的指针都会很好,谢谢


Joe

根据您编写的代码,我想您需要每个成本的第一个订单

那么你的陈述将是正确的

var minOrders = from customer in DataSet.Customers
                let order = (from o in DataSet.Orders
                             where o.CustomerId == customer.CustomerId
                             order by o.OrderTimestamp
                             select o).first()
                select new
                 {
                    customer.Name,
                    order.OrderAmount
                 });

你是想为一个特定的客户获得这个,还是为每个客户获得第一个订单?嗨,Jon,为每个客户。我已经编辑了。感谢Frederick-我希望使用MIN()获得更优雅的解决方案,但我将使用您的答案作为基础-Thanks@Joe.Net很高兴能帮上忙,我想用MIN可以得到一个complexer。您还可以查看命名空间System.Data.Linq.SqlClient中的sql方法(可能需要添加dll)谢谢,出于兴趣,为什么MIN会更复杂?@Joe.Net我没有找到MIN的好解决方案,如果您找到了,您可以随时告诉我:)