14

Tôi quan tâm đến việc di chuyển một số cấu hình NHibernate/ánh xạ vào mã để trợ giúp với một số vấn đề bảo trì. Bất cứ ai có thể cung cấp bất kỳ lời khuyên/ưu/khuyết điểm/so sánh của Fluent NHibernate so với NHibernate.Mapping.Attributes?NHibernate Lưu loát và thuộc tính

Tôi có một số kinh nghiệm với chú thích Java Hibernate, mà tôi thích, nhưng tôi tò mò nếu các thuộc tính NHibernate có thể so sánh được và liệu Fluent có cung cấp bất kỳ upides/downsides nào cần được xem xét hay không.

Trả lời

19

Tôi không nghĩ rằng bất kỳ ai đã thực hiện bất kỳ so sánh hoàn toàn nào. Nó rơi xuống như thế nào thoải mái với trang trí các thực thể của bạn với các thuộc tính. Lưu loát NHibernate là nhằm cho phép bạn sử dụng NHibernate với một mô hình hoàn toàn không bị ô nhiễm, trong khi các thuộc tính yêu cầu bạn thay đổi các thực thể của bạn; đây là mối lo ngại liên tục bị rò rỉ vào miền của bạn. Cho dù đó là một vấn đề cho bạn là liệu bạn có nên chọn thuộc tính hay không.

Lưu loát NHibernate cũng ném thêm một vài thứ vào bảng chứ không chỉ ánh xạ. Ngoài ra còn có auto mappings cho phép bạn tự động ánh xạ miền của mình. Có conventions support cho phép bạn giảm đáng kể sự lặp lại trong thiết kế của mình. Tôi sẽ không lặp lại mọi thứ, nhưng bạn có thể đọc thêm trên Fluent NHibernate wiki.

+1

Tôi đồng ý với quan điểm giữ lại mô hình không bị ô nhiễm. Đây là lý do lớn nhất tôi sử dụng Fluent NHibernate, mặc dù tôi đã sử dụng nó chủ yếu trên các dự án Brownfield. Tôi vừa mới bắt đầu sử dụng nó trong các dự án Greenfield và các automappings với sự hỗ trợ quy ước cũng rất đẹp. Thành thật mà nói, tôi có xu hướng nghĩ về cấu hình thông thạo như thế này như một loại lập trình hướng khía cạnh, và vì vậy nó có một số lợi ích tương tự như AOP. – Rich

0

NHibernate hiện hỗ trợ JPA (được gọi là NPersistence hoặc NPA cho nền tảng .NET) bao gồm chú thích JPA. Đó là cách tốt nhất để lập bản đồ các thực thể của bạn và có mã của bạn di động cho các nhà cung cấp khác. check it out:

www.npersistence.com

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