ORM: Có cho bất kỳ công ty nào như phần mềm, nơi dữ liệu phức tạp ... nhiều cấp, bảng, lớp ... Nhưng ngay cả ở đây cũng có kết hợp tốt về chế độ xem NHibernate và EF6 và cơ sở dữ liệu.
Không cho bất kỳ ứng dụng đặc biệt nào. như đo lường và nơi bạn cần lưu thực sự nhiều dữ liệu, nhưng không có dữ liệu phức tạp
Với ORM có nhiều khả năng, tất cả đều tùy thuộc vào bạn muốn gì.
Là người lập bản đồ ORM thực, tôi mạnh mẽ recomment NHibernate và Fluent NH ánh xạ. Bạn cần rất nhiều nghiên cứu để đặt cùng một kiến trúc đẹp, nhưng sau đó không có gì đứng theo cách của bạn. Với sự thỏa hiệp tối thiểu, bạn sẽ có được sự linh hoạt thực sự.
EF6x (core không phải là prod. ready IMHO) được gọi là ORM, nhưng nó tạo ra gần hơn với DAL. Có một số điều bạn không thể làm hiệu quả với EF6. Tuy nhiên, đây là công cụ yêu thích của tôi cho một mô hình đọc, trong khi tôi kết hợp nó với NHibernate (nơi NH tôi sử dụng cho một mô hình DDD/ghi).
Hiện tại để hiệu suất - nó luôn luôn chuyên nghiệp và chống. Nếu bạn thâm nhập sâu hơn vào kiến trúc ORM (xem bài viết của tôi: avoid ORM bad habits) thì bạn sẽ tìm thấy những cách trực quan để làm cho nó nhanh hơn. Đây là bài viết khác của tôi về cách làm cho EF6x 5x nhanh hơn (ít nhất là cho các tình huống đã đọc): EF6.x 5x faster
"SQL phức tạp, điều chỉnh" nghĩa là gì? Tôi nghĩ ORM có thể xử lý bất cứ điều gì bạn có thể làm trong SQL. – johnny
Một ORM có thể xử lý * mọi thứ * bạn có thể làm trong SQL đặc biệt khi bạn đang xem xét một SQL cụ thể (trong trường hợp này là Oracle). Nếu bạn cần sử dụng các tính năng cụ thể của Oracle, có thể bạn sẽ cần phải viết ít nhất một vài truy vấn trong SQL chứ không phải ngôn ngữ truy vấn đối tượng của ORM. –
Các địa điểm phổ biến nhất mà tôi phải tiếp cận qua ORM và viết SQL của riêng tôi là báo cáo. Một số báo cáo có thể khá phức tạp và tôi không nghĩ rằng bất kỳ ORM nào cũng sử dụng PIVOT. – Min