2010-02-20 98 views
5

Tôi đã đọc bài viết này về ADO.NET Entity Framework và thấy nó rất thú vị mặc dù trong bức ảnh đầu tiên tôi không thể giải mã được nhiều thứ. Tôi đọc lại bài báo để hiểu được logic thực sự đằng sau điều này.Lợi ích thực tế của ADO.NET Entity Framework là gì?

a) Một câu hỏi được cắt trong tâm trí của tôi là lý do tại sao chúng tôi cần một khung công tác ORM (nói chung)?

b) Và trong số các khung công tác ORM khác có sẵn cho .NET như Spring.NET, LINQ to Sql, NHibernate, vv tại sao chúng ta lại thích ADO.NET Entity Framework?

+1

Khuôn khổ thực thể là ORM chính hiện đang được Microsoft đẩy tiếp. Nếu bạn muốn lấy ORM từ Microsoft, đó là lý do để chọn nó. ORM khác cung cấp các tính năng khác nhau và có nhiều câu hỏi khác trên StackOverflow về việc so sánh .NET ORMs (http://stackoverflow.com/questions/1377236/nhibernate-entity-framework-active-records-or-linq2sql/). –

Trả lời

10

b. Chủ quan. Tôi có thể không đưa ra ý kiến ​​hay, vì tôi đã không sử dụng EF.

+4

wow .... bạn đã không sử dụng EF, nhưng phản ứng của bạn đã được chọn. Ấn tượng. – DotNetRookie

0

a) khung ORM tóm tắt mã truy cập của lớp dữ liệu boilerplate: bạn chỉ cần xử lý các đối tượng trong mã.

b) Tùy thuộc vào hoàn cảnh và yêu cầu của bạn.

+0

Thưa bạn, bạn có thể vui lòng được một chút chi tiết. –

+0

@ priyanka.bangalore: chỉ có thể nếu bạn nêu chi tiết các yêu cầu thực tế của bạn –

+0

Không, thưa bạn, không có yêu cầu dự án như vậy. Vì lợi ích của riêng tôi để hiểu chỉ tôi hỏi :) –

1

Đây là một số suy nghĩ của tôi:

a) ORM tồn tại để đơn giản hóa và giảm khối lượng công việc trên nhà phát triển. Trong nhiều mô hình quan hệ được thiết kế tốt, cơ sở dữ liệu có thể được truy cập thông qua mã có tính lặp lại cao (chỉ cần thay đổi tên bảng, tên cột, nhưng hành vi rất giống nhau). Một ORM tạo mã mà nhà phát triển có thể sử dụng ngay lập tức và tinh chỉnh khi cần thiết. Nhà phát triển không cần phải viết SQL - đó là công việc của ORM ngay bây giờ. Nó cũng làm mới mã được tạo ra bằng cách tự động điều chỉnh các thay đổi lược đồ cơ sở dữ liệu.

b) Tôi không biết. Nó thực sự phụ thuộc vào yêu cầu và phụ thuộc của bạn. Bạn muốn ORM của mình tham gia như thế nào? Hiệu suất quan trọng như thế nào? Bạn muốn mã này thân thiện với nhà phát triển như thế nào? Entity Framework có xu hướng tạo ra một thư viện lớp toàn diện hơn như lớp truy cập dữ liệu, đồng thời cung cấp cho bạn các công cụ trực quan để tinh chỉnh mã được tạo ra. LINQ to SQL có xu hướng dễ dàng hơn để rắc qua các phương pháp khác nhau. Đó chỉ là một ví dụ.

3

EF là tạo các đối tượng logic từ các bảng SQL quan hệ. Nói chung, bạn muốn hợp lý phù hợp với bảng vật lý của bạn với các đối tượng của bạn, nhưng đôi khi nó không hoạt động theo cách đó. Nó khuyến khích sự thiếu hiểu biết dai dẳng.

4

Có một số lợi thế. Quan trọng trong số đó là:

  1. Cung cấp chức năng chuyên dụng cho hoạt động CRUD (Tạo, Đọc, Cập nhật, Xóa). Dễ thực hiện các hoạt động CRUD.

  2. Nếu bạn muốn thay thế kho dữ liệu, rất dễ thay thế mà không sửa đổi logic truy cập dữ liệu vì tất cả logic truy cập dữ liệu đều có ở mức cao hơn.

  3. Dễ dàng quản lý từ một đến một, một đến nhiều và nhiều mối quan hệ giữa các bảng.

  4. Mô hình khái niệm có thể được trình bày theo cách tốt hơn.

  5. Nhà phát triển có thể giảm mã trong lớp và các lớp con để truy cập dữ liệu.

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