Tôi nghĩ rằng đối số LINQ chuyên nghiệp dường như đến từ những người không có lịch sử phát triển cơ sở dữ liệu (nói chung).
Đặc biệt, nếu sử dụng một sản phẩm như VS DB Pro hoặc Team Suite, chẳng hạn, nhiều đối số được đưa ra ở đây không áp dụng:
Khó bảo trì và kiểm tra hơn: VS cung cấp kiểm tra cú pháp đầy đủ, kiểm tra kiểu, kiểm tra tham chiếu và ràng buộc và hơn thế nữa. Nó cũng cung cấp khả năng kiểm tra đơn vị đầy đủ và các công cụ tái cấu trúc.
LINQ làm cho thử nghiệm đơn vị thực sự là không thể vì (trong suy nghĩ của tôi) nó thất bại trong thử nghiệm ACID.
Gỡ lỗi dễ dàng hơn trong LINQ: Tại sao? VS cho phép nhập đầy đủ từ mã được quản lý và gỡ lỗi SP thường xuyên.
Được biên dịch thành một DLL duy nhất thay vì các tập lệnh triển khai: Một lần nữa, VS đến giải cứu nơi nó có thể xây dựng và triển khai cơ sở dữ liệu đầy đủ hoặc thực hiện các thay đổi gia tăng an toàn dữ liệu.
Đừng học TSQL với LINQ: Không, bạn không học, nhưng bạn phải học LINQ - lợi ích ở đâu?
Tôi thực sự không thấy điều này là một lợi ích. Về mặt lý thuyết, việc có thể thay đổi điều gì đó có vẻ tốt, nhưng chỉ vì những thay đổi hoàn thành hợp đồng không có nghĩa là nó sẽ trả lại kết quả chính xác. Để có thể xác định kết quả chính xác là gì bạn cần bối cảnh và bạn có được bối cảnh đó từ mã gọi.
Ừm, các ứng dụng ghép lỏng lẻo là mục tiêu cuối cùng của tất cả các lập trình viên giỏi vì chúng thực sự làm tăng tính linh hoạt. Có thể thay đổi mọi thứ trong sự cô lập là điều tuyệt vời, và chính các bài kiểm tra đơn vị của bạn sẽ đảm bảo nó vẫn trả về kết quả phù hợp.
Trước khi tất cả các bạn buồn, tôi nghĩ LINQ có vị trí của nó và có một tương lai lớn. Nhưng đối với các ứng dụng phức tạp, nhiều dữ liệu, tôi không nghĩ rằng nó đã sẵn sàng để thay thế các thủ tục được lưu trữ. Đây là một quan điểm mà tôi đã lặp lại bởi một MVP tại TechEd năm nay (chúng sẽ vẫn không tên).
EDIT: Mặt thủ tục lưu trữ LINQ to SQL của mọi thứ là thứ tôi vẫn cần đọc thêm - tùy thuộc vào những gì tôi tìm thấy, tôi có thể thay đổi diatribe ở trên;)