Từ những gì tôi hiểu từ tài liệu của SelectMany, người ta có thể sử dụng nó để tạo ra một chuỗi (phẳng) của mối quan hệ 1-nhiều.
Tôi có các lớp học sau
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
}
class Order
{
public int Id { get; set; }
public int CustomerId { get; set; }
public string Description { get; set; }
}
Sau đó, tôi cố gắng sử dụng chúng bằng cách sử dụng cú pháp biểu thức truy vấn như vậy
var customers = new Customer[]
{
new Customer() { Id=1, Name ="A"},
new Customer() { Id=2, Name ="B"},
new Customer() { Id=3, Name ="C"}
};
var orders = new Order[]
{
new Order { Id=1, CustomerId=1, Description="Order 1"},
new Order { Id=2, CustomerId=1, Description="Order 2"},
new Order { Id=3, CustomerId=1, Description="Order 3"},
new Order { Id=4, CustomerId=1, Description="Order 4"},
new Order { Id=5, CustomerId=2, Description="Order 5"},
new Order { Id=6, CustomerId=2, Description="Order 6"},
new Order { Id=7, CustomerId=3, Description="Order 7"},
new Order { Id=8, CustomerId=3, Description="Order 8"},
new Order { Id=9, CustomerId=3, Description="Order 9"}
};
var customerOrders = from c in customers
from o in orders
where o.CustomerId == c.Id
select new
{
CustomerId = c.Id
, OrderDescription = o.Description
};
foreach (var item in customerOrders)
Console.WriteLine(item.CustomerId + ": " + item.OrderDescription);
Điều này mang lại cho những gì tôi cần.
1: Order 1
1: Order 2
1: Order 3
1: Order 4
2: Order 5
2: Order 6
3: Order 7
3: Order 8
3: Order 9
Tôi giả sử điều này chuyển sang sử dụng phương thức SelectMany khi không sử dụng cú pháp biểu thức truy vấn?
Dù bằng cách nào, tôi đang cố gắng sử dụng SelectMany. Vì vậy, ngay cả khi truy vấn ở trên của tôi không dịch sang SelectMany, với hai lớp và dữ liệu giả, ai đó có thể cung cấp cho tôi truy vấn linq sử dụng SelectMany không?