2010-01-13 20 views
10

Bất cứ ai cũng có thể giới thiệu một dự án mã nguồn mở thiết kế tốt với Khung thực thể không? Tôi đã có một số thị hiếu về Entity Framework 4, nhưng tôi rất thích biết cách mọi người sử dụng khung này trong một số dự án lớn.Bất cứ ai cũng có thể đề xuất một dự án mã nguồn mở thiết kế tốt với Khung thực thể không?

Rất cám ơn.

Daoming

+0

Tôi không nghĩ rằng bạn sẽ tìm thấy. Tất cả những người được thiết kế tốt sử dụng nhibernate;) – jgauffin

Trả lời

2

Trong khi không lớn, bạn có thể xem mẫu All-In-One Code Framework. Tôi nghĩ rằng có ít nhất một vài ví dụ về khung thực thể trong đó. Một ví dụ cụ thể là:

How to work with table relationships and entity inheritances in ADO.NET Entity Data Model

mẫu mã này bao gồm một hướng dẫn từng bước về cách làm việc với Entity Data Model trong nhiều cách khác nhau, trong đó có hiệp hội One-to-Nhiều, Nhiều-to -Nhiều liên kết, liên kết một-một, hợp nhất bảng, tách bảng, kế thừa bảng mỗi phân cấp và kế thừa từng bảng một.

EDIT:

Họ chỉ bổ sung thêm một mẫu:

CSEFCodeOnly, VBEFCodeOnly

Hai mẫu minh họa cách sử dụng một trong những tính năng EF4 mới, Mã số Chỉ, để tạo siêu dữ liệu EDM và tệp .edmx tương ứng với các lớp thực thể POCO trong thời gian chạy. Họ cũng trình bày một số thao tác chèn cơ bản và truy vấn để kiểm tra EDM siêu dữ liệu được tạo bởi Chỉ mã.

1

Tôi tìm thấy câu hỏi này sẽ tìm kiếm câu trả lời giống nhau. Cho đến nay, tốt nhất tôi đã tìm thấy là http://www.nopcommerce.com/ - kể từ 1,70 (ngày 7 tháng 7 năm 2010) họ đã sử dụng khung Entity.

0

Đó là năm 2014. Câu trả lời cho câu hỏi vẫn là không.

Lý do không rõ ràng, tôi hy vọng tôi có thể giải thích. Hầu hết các dự án nguồn mở điển hình trở nên thành công vì chúng có thể mở rộng, và do đó cho phép cộng đồng xung quanh nó phát triển. Extensible có nghĩa là mở rộng các thực thể và do đó cơ sở dữ liệu theo một cách nào đó cho mỗi plugin. Tuy nhiên, EF chỉ hỗ trợ một phiên bản của biểu đồ thực thể và do đó bạn không thể nói, thêm plugin, sau đó nâng cấp cơ sở dữ liệu gốc. Nó sẽ phá vỡ di chuyển. Và do đó mọi người không sử dụng EF trong các dự án OS.

Bạn có thể thấy mọi người đang đấu tranh để tạo plugin trong nopcommerce vì điều này. Bất kỳ plugin nào cần các thuộc tính bổ sung trên một đối tượng đều yêu cầu thay đổi mã trong lõi.Về cơ bản, bất kỳ triển khai nopcommerce nào có plugin, là một nhánh của dự án. Người dùng cuối cùng sẽ trở thành nhà phát triển bởi vì bây giờ họ phải kiểm soát mã nguồn, hợp nhất, v.v. Một người bán hàng trực tuyến không có loại kỹ năng đó. Họ chỉ muốn cài đặt plugin và tiếp tục. Vì vậy ... không, EF là khủng khiếp đối với các dự án nguồn mở. Đối với các dự án nguyên khối lớn, nó là tuyệt vời mặc dù.

+0

Đừng nghĩ rằng đó là một tuyên bố chính xác. Đúng là EF chỉ có thể hỗ trợ một đồ thị nhưng điều đó không làm cho nó không thể tạo ra các plugin. Phần mở rộng về nguyên tắc sẽ có thể thêm hoặc ghi đè lên chức năng hiện có nhưng việc sửa đổi các thực thể hiện tại không phải lúc nào cũng là một yêu cầu. Nó thực sự phụ thuộc vào sự hỗ trợ mở rộng mức độ cao hơn và không phải là một hạn chế áp đặt bởi EF. – Woland

+1

Nếu nó thực sự phụ thuộc vào một số 'cấp cao hơn' ma thuật, nopcommerce chắc chắn đã không tìm thấy nó được nêu ra. Và họ đã sử dụng những thứ như IoC và MEF. Hiện không có bản sửa lỗi nào vì di chuyển trong EF là ảnh chụp nhanh. Trong thực tế, thậm chí có một tài liệu từ microsoft về nó, http://msdn.microsoft.com/en-us/data/dn481501.aspx Lưu ý rằng bài viết trình bày vấn đề chỉ trong một lớp, nhưng vấn đề cũng áp dụng khi thay đổi là trong các lớp khác nhau. Tìm kiếm "môi trường nhóm di trú nhóm mã thực thể đầu tiên" – DraconPern

+0

Có, bạn không thể sử dụng Di chuyển để tùy chỉnh plugin. Ứng dụng phải được thiết kế để hỗ trợ khả năng mở rộng trong khi EF sẽ hỗ trợ nâng cấp/di chuyển các plugin đó lên phiên bản mới hơn (theo nhà cung cấp). Nó không nên được sử dụng để tùy chỉnh cho một nhu cầu kinh doanh cụ thể. – Woland

1

Thanh toán sản phẩm có tên Virto Commerce. Trang web là http://virtocommerce.com. Nó là một dự án mã nguồn mở dựa trên khung Entity sử dụng mẫu Repository và Unit Of Work. Mã nguồn là https://github.com/VirtoCommerce/vc-community.

+0

Bạn nên tiết lộ ít nhất chi nhánh của bạn với virtocommerce.com. – bummi

+0

Vâng, tôi là một kiến ​​trúc sư của Virto Commerce, nhưng câu hỏi là ví dụ về cách sử dụng Entity Framework, đó là những gì tôi sẵn lòng chia sẻ với mọi người thông qua nguồn mở. Tôi không thảo luận rằng VC là tốt hơn bất cứ điều gì hoặc so sánh nó, vì vậy tôi không thấy điểm tiết lộ. Ngoài ra, nhấp vào tiểu sử của tôi sẽ hiển thị liên kết của tôi. – Woland

+0

Tôi sẽ không tranh luận, đó là quyết định của bạn, tôi chỉ cố gắng ngăn cản bạn gặp rắc rối theo thời gian. [Tránh tự quảng bá.] (Http://stackoverflow.com/help/behavior) – bummi

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