2010-05-24 41 views
2

我正在改造一個非常大的應用程序來使用NHibernate作爲它的數據訪問策略。 AutoMapping一切正常。幸運的是,當構建領域層時,我們使用了代碼生成器。我現在遇到的主要問題是每個集合都隱藏在派生自列表<>的自定義類後面。例如使用FluentNHibernate AutoMapping自定義集合

public class League 
{ 
    public OwnerList owners {get;set;} 
} 
public class OwnerList : AppList<Owner> { } 
public class AppList<T> : List<T> { } 

爲了完成這項工作,需要寫什麼樣的公約?

+0

「幸運的是,領域層建成的時候,我們使用一個代碼生成器」 - 我看不出這將是一件好事。公開具體的列表類型是一個很大的設計錯誤。 – 2010-05-24 23:22:13

+0

域與數據庫之間存在統一性是一件好事,因此直接域映射很容易。 – ScottBelchak 2010-05-25 14:38:14

回答

2

我不認爲你將能夠通過一個約定來實現這一點。你將不得不創建一個自動映射覆蓋,然後執行以下操作:

mapping.HasMany(l => a.owners).CollectionType<OwnerList>(); 
+0

這不是一個好的解決方案,但它是唯一可行的解​​決方案。 – ScottBelchak 2010-06-03 18:49:52