Đâ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ụ.
Nguồn
2010-02-20 04:10:41
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/). –