Làm cách nào để bạn thực hiện CROSS JOIN với LINQ to SQL?Làm cách nào để bạn thực hiện CROSS JOIN với LINQ to SQL?
100
A
Trả lời
124
Nối chéo đơn giản là sản phẩm Descartes của hai bộ. Không có toán tử join rõ ràng cho nó.
var combo = from p in people from c in cars select new { p.Name, c.Make, c.Model, c.Colour };
21
Dựa trên câu trả lời của Steve, khái niệm đơn giản nhất sẽ là:
var combo = from Person in people
from Car in cars
select new {Person, Car};
24
Các điều tương tự với phương pháp linq
mở rộng:
var names = new string[] { "Ana", "Raz", "John" };
var numbers = new int[] { 1, 2, 3 };
var newList=names.SelectMany(
x => numbers,
(y, z) => { return y + z + " test "; });
foreach (var item in newList)
{
Console.WriteLine(item);
}
9
Một Tuple
là một loại tốt cho sản phẩm Descartes :
public static IEnumerable<Tuple<T1, T2>> CrossJoin<T1, T2>(IEnumerable<T1> sequence1, IEnumerable<T2> sequence2)
{
return sequence1.SelectMany(t1 => sequence2.Select(t2 => Tuple.Create(t1, t2)));
}
3
Phương pháp mở rộng:
public static IEnumerable<Tuple<T1, T2>> CrossJoin<T1, T2>(this IEnumerable<T1> sequence1, IEnumerable<T2> sequence2)
{
return sequence1.SelectMany(t1 => sequence2.Select(t2 => Tuple.Create(t1, t2)));
}
Và sử dụng như:
vals1.CrossJoin(vals2)
Các vấn đề liên quan
- 1. Làm cách nào để bạn mở rộng LINQ to SQL?
- 2. Thực hiện lệnh INSERT INTO ... SELECT với LINQ to SQL
- 3. LINQ to SQL Left Join, Trình tự, Nhóm By Đếm
- 4. Làm thế nào để làm LEFT JOIN trong LINQ to Entities?
- 5. Trong LINQ to SQL, làm thế nào để bạn chuyển các phần của truy vấn LINQ vào một hàm
- 6. NOLOCK với LINQ to SQL
- 7. Chuyển đổi SQL để LINQ to SQL
- 8. LINQ to SQL hoặc LINQ to DataSet?
- 9. LINQ to SQL với SQL Azure
- 10. LINQ to SQL và có
- 11. LINQ to SQL - Left Outer Join với nhiều điều kiện tham gia
- 12. Khi nào các truy vấn LINQ-to-SQL thực thi?
- 13. Insert/Chọn với LINQ-To-SQL
- 14. LINQ to batch sql xóa
- 15. Làm cách nào để triển khai lệnh này để ngăn chặn deadlocks với LINQ to SQL?
- 16. Làm thế nào để bạn nhóm theo nhiều cột trong LINQ TO SQL?
- 17. Cách tốt nhất để cập nhật trong LINQ to SQL
- 18. SQL to LINQ Tool
- 19. LINQ to SQL tạo bảng
- 20. Áp dụng LINQ to SQL chéo
- 21. LINQ to SQL: Cách viết 'Thích' chọn?
- 22. Làm cách nào để bạn nắm bắt sự kiện Lưu hoặc Tải trên lớp LINQ-to-SQL?
- 23. Cách thực hiện LEFT JOIN với hơn 2 bảng?
- 24. LINQ-To-SQL ngăn chặn SQL-Injection như thế nào?
- 25. LINQ to SQL Decimal Parameter
- 26. sql left join + one to many relationship
- 27. Chuyển đổi nhóm SQL đơn giản thành LINQ to SQL
- 28. LINQ to SQL nvarchar problem
- 29. Làm thế nào để thực hiện LEFT JOIN trong SQL Server giữa hai câu lệnh SELECT?
- 30. Làm thế nào để bạn trừu tượng hóa mã kiên trì của bạn khi sử dụng LINQ to SQL?
Làm thế nào để bạn viết rằng 'từ p ở những người từ c trong cars' trong ký hiệu lambda? – sports
'people.SelectMany (p => ô tô, (p, c) => mới {...})' –