Tôi đang có đối tượng thực thể được gọi là Patient
và pháp nhân này có tài sản là Visits
thuộc loại VisitsCollection
.Loại bộ sưu tập tùy chỉnh NHibernate
VisitsCollections
là lớp con của IList<Visit>
nhưng nó cũng thêm một số logic tùy chỉnh vào bộ sưu tập (như đặt hàng tự động, xác thực, thông báo, v.v.).
I cần để sử dụng loại bộ sưu tập tùy chỉnh vì nó thêm một số dữ liệu vào thực thể được thêm vào bộ sưu tập và thực hiện một số thủ tục giấy tờ khác một cách minh bạch.
Bây giờ tôi muốn để lập bản đồ mà trong NHibernate, vì vậy tôi đã tạo:
<list name="Visits" lazy="true" fetch="select">
<key foreign-key="PatientId" />
<index column="Timestamp" />
<one-to-many class="Visit" not-found="ignore"/>
</list>
tôi nhận được một ngoại lệ:
Không thể cast đối tượng của loại 'NHibernate.Collection. PersistentList 'để nhập' ... VisitsCollection '
Bất cứ khi nào tôi truy cập thuộc tính lượt truy cập.
Tôi cũng đã cố gắng để ánh xạ nó theo cách này:
<list name="Visits" lazy="true" fetch="select" collection-type="VisitsCollection">
<key foreign-key="PatientId" />
<index column="Timestamp" />
<one-to-many class="Visit" not-found="ignore"/>
</list>
nhưng vẫn còn, tôi nhận được ngoại lệ này:
Tuỳ loại không thực hiện UserCollectionType: ..... VisitsCollection
tôi không muốn kế thừa của tôi VisitsCollection
từ bất kỳ loại NHibernate như lớp bộ sưu tập là một phần của một khuôn khổ mà tôi muốn nó được Dal-Agnos tic (vì nó sẽ được sử dụng trong nhiều tình huống - không chỉ với một cơ sở dữ liệu).
Bất kỳ ý tưởng nào về cách ánh xạ điều này, giữ gìn cấu trúc mã của tôi?
Xin cảm ơn trước.