Không có gì kỳ diệu ở đây cả, bạn gặp lỗi vì kết nối bạn đang sử dụng khi chèn CompanyAddress không phải là kết nối như bạn nghĩ.
Đó là một kết nối mới. Khi chèn ComapnyPaymentInfo được chạy, bạn đang sử dụng kết nối đã được gắn với giao dịch của mình. Nó đang chờ các lệnh mới vì bạn đã đợi ở bước trước.
Mặt khác, việc sử dụng Task.WhenAll () sẽ cố gắng sử dụng nhiều luồng. Nếu một kết nối bận chạy một lệnh, lệnh đó sẽ không được sử dụng và một kết nối mới sẽ xuất hiện.
Hãy nhớ rằng khi sử dụng Giao dịch, bạn chỉ có một kết nối khả dụng, bạn không thể hưởng lợi từ tính năng song song.