2010-05-24 4 views
2

Я дорабатываю очень большое приложение для использования NHibernate в качестве стратегии доступа к данным. Все хорошо сочетается с AutoMapping. К счастью, когда был создан доменный уровень, мы использовали генератор кода. Основная проблема, с которой я столкнулся сейчас, состоит в том, что каждая коллекция скрыта за пользовательским классом, который происходит из списка <>. Например,AutoMapping Custom Collections with FluentNHibernate

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

Какую конвенцию я должен написать, чтобы сделать это?

+0

«К счастью, когда слой домена был построен, мы использовали генератор кода» - я не понимаю, как это было бы хорошо. Выявление конкретных типов списков является большой ошибкой дизайна. –

+0

Хорошо, что между доменом и базой данных была однородность, поэтому простое сопоставление доменов легко. – ScottBelchak

ответ

2

Я не думаю, что вы сможете достичь этого с помощью конвенции. Вы должны создать автоматическое отображение переопределение и затем выполните следующие действия:

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

Это нехорошее решение, но это единственное, что работает. – ScottBelchak

Смежные вопросы