比如说我们要从用户表customer和用户订单表orders中,查询上海的用户,在最近10个月中至少消费3笔满10快钱的用户的姓名和年龄
var results = from customer in customers where customer.State == "WA" let custOrders = (from order in orders where customer.ID == order.ID select new { order.Date, order.Amount }) where custOrders.Count(co => co.Amount >= 10 && co.Date >= DateTime.Now.AddMonths(−10)) >= 3 select new { customer.Name, customer.Age }; foreach (var result in results) { Console.WriteLine("{0} {1}", result.Name, result.Age); }
就是XXX.XXX().XXX() 这种方式。
这就是linq吧。不是所有的sql都可以用linq来表达,不是所有的linq都被封装成XXX.XXX().XXX()这种形式了。
XXX.XXX()这种形式也是转化成linq来执行的。
这个翻译不来吧,还有聚合函数。请高手解析。