Пользовательские коллекции AutoMapping с помощью FluentNHibernate

Я модифицирую очень большое приложение, чтобы использовать NHibernate в качестве стратегии доступа к данным. С AutoMapping все идет хорошо. К счастью, при создании уровня домена мы использовали генератор кода. Основная проблема, с которой я сейчас сталкиваюсь, заключается в том, что каждая коллекция скрыта за настраиваемым классом, производным от List ‹>. Например

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

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


person ScottBelchak    schedule 24.05.2010    source источник
comment
К счастью, при создании уровня предметной области мы использовали генератор кода - я не понимаю, насколько это хорошо. Предоставление конкретных типов списков - большая ошибка дизайна.   -  person Diego Mijelshon    schedule 25.05.2010
comment
Хорошо, что между доменом и базой данных было единообразие, поэтому прямое сопоставление домена не составляет труда.   -  person ScottBelchak    schedule 25.05.2010


Ответы (1)


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

mapping.HasMany(l => a.owners).CollectionType<OwnerList>();
person s1mm0t    schedule 24.05.2010
comment
Это не очень хорошее решение, но работает только оно. - person ScottBelchak; 03.06.2010