2009-07-31 29 views

Trả lời

5

LINQ có một lợi thế lớn so với hầu hết các phương pháp truy cập dữ liệu khác: nó xoay quanh 'truy vấn biểu hiện 'ẩn dụ, có nghĩa là các truy vấn có thể được truyền xung quanh như đối tượng và được thay đổi và sửa đổi, tất cả trước chúng được thực hiện (lặp lại). Trong thực tế điều đó có nghĩa là mã có thể được mô-đun và cô lập tốt hơn. Kho lưu trữ truy cập dữ liệu sẽ trả về truy vấn 'đơn đặt hàng', sau đó một bộ lọc trung gian trong đường dẫn xử lý yêu cầu sẽ trang trí truy vấn này bằng bộ lọc, sau đó nó được chuyển sang mô-đun hiển thị cho biết thêm phân loại và phân trang, v.v. được lặp lại của nó, biểu thức đã hoàn toàn chuyển thành rất cụ thể SELECT ... WHERE ... ORDER BY ... LIMIT ... (hoặc phân trang cụ thể ở mặt sau khác như ROW_NUMBER). Đối với các nhà phát triển ứng dụng, điều này là vô giá và đơn giản là không có bất kỳ sự thay thế khả thi nào. Đây là lý do tại sao tôi tin rằng LINQ là ở đây để ở lại và sẽ không biến mất trong 2 năm. Nó chắc chắn không chỉ là một mốt nhất thời. Và tôi đặc biệt đề cập đến LINQ như là phương pháp truy cập cơ sở dữ liệu.

Lợi thế của việc điều khiển các đối tượng biểu thức truy vấn một mình là đủ yếu tố để làm cho LINQ trở thành một giá thầu chiến thắng. Thêm vào đó nhiều kiểu container mà nó có thể thao tác (XML, mảng và các bộ sưu tập, các đối tượng, SQL) và giao diện thống nhất nó hiển thị trên tất cả các công nghệ khác nhau này, xem xét các thay đổi xử lý song song trong .Net 4.0 mà tôi chắc chắn sẽ tích hợp trong suốt vào LINQ xử lý mảng và bộ sưu tập, và thực sự không có cách nào LINQ sẽ biến mất. Chắc chắn, ngày nay đôi khi nó tạo ra câu lệnh SQL không thể đọc được, kém hiệu quả và không thể chuyển nhượng, và là tất cả cơn ác mộng DBA chuyên dụng. Nó sẽ trở nên tốt hơn.

+0

lol @ "mỗi cơn ác mộng DBA chuyên dụng". – Tundey

+0

Câu trả lời hay (tôi cũng có cùng một câu hỏi) và rất hay khi biết điều đó "đôi khi tạo ra câu lệnh SQL không thể đọc được, kém hiệu quả và không thể chạy được". :) – JohnB

4

LINQ cung cấp quyền truy cập "hạng nhất" vào dữ liệu của bạn. Có nghĩa là các truy vấn của bạn bây giờ là một phần của ngôn ngữ lập trình.

LINQ cung cấp cách thông thường để truy cập các đối tượng dữ liệu thuộc mọi loại. Ví dụ, cú pháp tương tự được sử dụng để truy cập các truy vấn cơ sở dữ liệu của bạn cũng có thể được sử dụng để truy cập danh sách, mảng và tệp XML.

Học LINQ sẽ cung cấp cho bạn sự hiểu biết sâu hơn về ngôn ngữ lập trình. LINQ là trình điều khiển cho tất cả các loại cải tiến ngôn ngữ, chẳng hạn như các phương pháp mở rộng, các kiểu ẩn danh, biểu thức lambda, cây biểu thức, suy luận kiểu và khởi tạo đối tượng.

+0

Tôi thích lý do thứ 2 tốt nhất. – JohnB

0

Đây có phải là câu hỏi thực sự không? Không thể trả lời bằng đoạn mã. Hầu hết các câu hỏi loại thảo luận này đều đóng cửa nhanh chóng.

+3

... có lẽ tốt nhất được thể hiện dưới dạng nhận xét. –

+1

@ Robert Harvey, có lẽ tốt nhất là một bình luận, nhưng nội dung là đúng –

2

Tôi nghĩ một câu hỏi hay hơn là tại sao một người thay thế SQL bằng LINQ khi truy vấn cơ sở dữ liệu?

+1

intellisense loại an toàn trong Visual Studio, thay vì chuyển các khối văn bản lớn của bạn (truy vấn SQL) mà không kiểm tra kiểu và không an toàn (thổi) chỉ trong thời gian chạy trong sản xuất .....) –

+1

@mark_s: mặc dù có nhiều cách khác để thực hiện việc này. Ví dụ, tập dữ liệu được nhập mạnh. –

+1

LINQ là phương pháp ưa thích để truy cập dữ liệu của bạn thông qua một ORM chẳng hạn như LINQ to SQL hoặc Entity Framework. –

1

"Biết kẻ thù của bạn"?

OTOH, không quan tâm. Tôi đang tìm hiểu thêm về XMl, XSLT, XSDs vv vì tôi có thể thấy việc sử dụng chúng như một nhà phát triển cơ sở dữ liệu.

0

Tôi nghĩ rằng một trong những lý do tại sao người ta có thể xem xét LINQ nó vì LINQ là lớn tăng năng suất và thời gian khổng lồ saver

0

Câu hỏi này cũng nhắc tôi hỏi, nếu LINQ trở nên vô cùng phổ biến, các nhà phát triển phía máy chủ có biết SQL cũng như người tiền nhiệm của họ đã làm không?

+2

Làm thế nào để bạn biết lắp ráp? –

Các vấn đề liên quan