A left outer join is a join in which each element of the first collection is returned, regardless of whether it has any correlated elements in the second collection. Calling DefaultIfEmpty on the results of a group join returns the result of a left join.
Example:
1: class User
2: {3: public int UserID { get; set; }
4: public string Name{ get; set; }
5: } 6: 7: class Order
8: {9: public int OrderID { get; set; }
10: public int UserID { get; set; }
11: public int ProductID { get; set; }
12: } 13: 14: List<User> users = UserService.List(); 15: List<Order> orders = OrderService.ListByUser(userID); 16: 17: var q = from o in orders
18: join u in users on o.UserID = u.UserID into joinedUsers
19: from UserOrders in joinedUsers.DefaultIfEmpty()
20: select new UserOrder()
21: { 22: OrderID = o.OrderID, 23: ProductID = o.ProductID, 24: Name = UserOrders.Name 25: } 26: var result = q.ToList();
No comments:
Post a Comment