2010-08-08 16 views
6

Tôi đang tìm kiếm ORM tốt cho dự án sắp tới.ORM tốt nhất với những yêu cầu này

Cơ sở dữ liệu sẽ có khoảng 1000 đến 1200 bảng và sẽ nằm trong cả SQL Server và Oracle, sẽ được sử dụng tùy thuộc vào nhu cầu của khách hàng doanh nghiệp. Ngoài ra một vài phần của dự án sẽ làm việc với các dịch vụ WCF. Tôi muốn một nhà thiết kế hoặc một cái gì đó như thế. Hỗ trợ tốt cho LINQ. Hiệu suất được chấp nhận.

Tôi đã thử DataObjects.Net nhưng không có bất kỳ nhà thiết kế nào. Chúng tôi không thể mã hóa tất cả các bảng đó cũng như không sử dụng trình tạo mã. Và tôi không chắc liệu DataObjects.Net có hỗ trợ chuyển đổi cơ sở dữ liệu hay không. Ngoài ra tôi đã quen thuộc với EF4 nhưng nó không thể hỗ trợ cả hai cơ sở dữ liệu với nhau, và chuyển đổi cơ sở dữ liệu bằng tay (sửa đổi tập tin edmx) là một nỗi đau trong ... cho công việc bảo trì.

Xin cảm ơn trước.

Chỉnh sửa: Có vẻ OpenAccessLLBLGEN Pro có nhà thiết kế nhưng tôi không có kinh nghiệm với họ.

+0

Tôi biết KHÔNG có ai có thiết kế hoạt động tốt với số lượng đối tượng đó. Tốt nhất bạn có thể nhận được khá nhiều LLBLGEN Pro - đơn giản bởi vì nó là một ONLY với một thiết kế DECENT thậm chí có thể sử dụng với 1000-1200 thực thể (EntityFramework khá nhiều đi vào "không có nhà thiết kế" với số tiền này - nó là hoàn toàn không sử dụng được) . – TomTom

+0

Tôi nghĩ câu hỏi này đủ cụ thể để được miễn lý do đóng "không mang tính xây dựng". –

Trả lời

7

Tôi vẫn sẽ bỏ phiếu cho Entity Framework v4 - EF4.

Sau tất cả:

  • bạn có thể có nhiều file EDMX, không có vấn đề - một cho SQL Server, một cho Oracle

  • bạn có thể đặt những thành thư viện lớp riêng của họ, và sau đó tải hoặc, hoặc khác, hoặc cả hai, nếu cần thiết, tại thời gian chạy (ví dụbằng công Managed Extensibility Framework hoặc một cái gì đó của riêng bạn)

  • bạn có thể dễ dàng nhắm mục tiêu các tập tin EDMX tại cơ sở dữ liệu sử dụng chuỗi kết nối - thực sự không khó chút nào

+0

Tôi thứ hai @marc. EF4 có hỗ trợ thiết kế và hỗ trợ LINQ tốt và ý tưởng lưu giữ 2 tệp EDMX của @ marc có thể giảm bớt sự đau đớn của nhiều hỗ trợ RDBMS. – Sruly

+0

Thực ra nếu bạn có khoảng 1200 bảng, bạn thực sự không nên chỉ có 1 tệp edmx. Điều đó sẽ không bao giờ làm việc hiệu quả khôn ngoan, xem xét tất cả các theo dõi rằng bối cảnh sẽ cần phải làm. Bạn sẽ vẫn cần phải có nhiều bản in cho cả máy chủ oracle và sql. –

+0

@Stephane: vâng, điểm tốt - mỗi EDMX không nên có nhiều hơn 200 bảng. Thông thường, không khó để phân vùng ứng dụng của bạn thành các nhóm 200 (hoặc ít hơn) bảng –

2

Với thông tin này, tôi khuyên bạn nên xem xét NHibernate (và/hoặc fluent-nhibernate).

Mục bạn sẽ phải xem xét là hiệu suất. Điều này phụ thuộc rất nhiều vào bản chất của ứng dụng của bạn. 1.000 đến 1.200 bảng âm thanh lớn, vì vậy tôi khuyên bạn nên chắc chắn chạy một số thử nghiệm hiệu suất có ý nghĩa (ngoài tất cả các bài kiểm tra khác) trước khi bạn hoàn thành quyết định.

Chỉnh sửa: Trên thực tế, vị trí bắt đầu tốt hơn cho NHibernate là nhibernate.info (Cảm ơn, Justin!).

+0

Tại sao NHibernate? Để giảm mô hình cơ sở dữ liệu cho các đối tượng thời gian, chúng tôi muốn sử dụng một nhà thiết kế hoặc vv NHibernate có bất kỳ nhà thiết kế? – Salar

+0

Theo các thử nghiệm này http://ormbattle.net/ NHibernate không hoạt động tốt so với những người khác. – Salar

+0

@Salor - Nó phụ thuộc vào loại, NHibernate làm tốt hơn trong một số hơn những người khác và ngược lại. –

1

Tôi cũng xin đề nghị NHibernate nhưng nơi để nghiên cứu nó chắc chắn là NHForge:

http://nhibernate.info/

đây là cấp cao tổng quan về tính năng (bao gồm LINQ):

01.

http://nhibernate.info/doc/nhibernate-features.html

Có một vài nhà thiết kế sẵn, bao gồm LLBLGen Pro:

http://nhibernate.info/doc/commercial-product-ecosystem.html

NHibernate 3 là ở alpha bây giờ nhưng tôi biết rằng nó đang được sử dụng trong sản xuất một vài nơi. Đó có thể là cách tốt nhất để thực hiện dự án mới.

+0

Có, tôi đồng ý. Nơi tốt hơn để bắt đầu là NHForge. Tôi sẽ cập nhật câu trả lời của tôi cho phù hợp. – Manfred

1

Tôi nghĩ bạn sẽ cần phải chọn riêng công cụ thiết kế và ORM của mình. Ví dụ: đi với EF và LLBLGEN hoặc NHibernate và CodeSmith hoặc NHibernate và LLBLGEN, v.v.

+0

Điểm tốt, tôi sẽ sử dụng máy phát điện riêng của tôi với EF4. – Salar

2

OpenAccess cũng có thể thực hiện công việc cho bạn. Bạn có thể sử dụng nhiều tệp .rlinq và phương pháp lắp ráp cho mỗi cơ sở dữ liệu như được đề xuất với Khuôn khổ thực thể. Lợi ích tôi thấy cho bạn sẽ là sự hỗ trợ bạn sẽ nhận được từ Telerik vì có khá nhiều cơ hội để bạn đánh một hoặc hai hòn đá trong khi phát triển một giải pháp có tỷ lệ như vậy.

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