2010-09-08 78 views
1

我正在使用NHibernate替代ADO.NET數據訪問邏輯,我們無法一次映射整個域模型。這意味着我們將擁有屬性映射到尚未與NHibernate映射的其他域類的域類。如何處理尚未映射到NHibernate的其他域類的屬性映射?

考慮具有Address屬性的Person類(Address是沒有NH映射的域對象,Person是我映射的類)。如何在人員映射中包含地址而不創建地址的整個映射?

是否可以從定製PropertyAccessor中調用遺留(ADO.NET)數據訪問邏輯?如果是這樣,這是否合理?

*我在另一個問題here問了這個,但沒有得到答覆。我希望得到一個更簡潔的問題。

+0

我認爲這是一個可怕的想法,即使這是可能的。這將是不可維護的。 – 2010-09-08 15:27:36

+0

@Peirre:這是一個可怕的想法?試圖使ADO.NET和NHibernate的數據訪問邏輯共存,或者是專門定製的PropertyAccessor? – tQuarella 2010-09-08 15:42:11

回答

1

在您的示例中,即使您沒有爲Address創建映射文件,它也可能與創建映射文件本身一樣多。在轉換過程中,您可能會考慮其他一些選項,例如,使用方法'GetPerson'的自定義DAL,例如NH裝載人員和ADO裝入地址。不漂亮或高效,但封裝工作,所以當您要映射地址時,接口不會更改。這就是說有一些選擇使用NHibernate.Transform.AliasToBeanResultTransformer創建自定義數據轉換。但最終你必須找到一個很好的方法來分塊你的域模型。使用DAL既是好的做法,也可以成爲ADO和NH瘋狂的橋樑。