
比如说我们要从用户表customer和用户订单表orders中,查询上海的用户,在最近10个月中至少消费3笔满10快钱的用户的姓名和年龄。如果写成传统的方法,不知道要写多少代码,而且各种复杂的处理逻辑使得代码的语义非常不清晰,但是,如果写成LINQ的话,会是如下:
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 };
下面另附上一条分页的linq语句:
var productList=(from prod in db.Products
where prod.Type="零食" orderby prod.datatime select u).Skip(PageSize*(PageNum-1)).Take(PageSize);