Динамические сопоставления среды выполнения FluentNhibernate - PullRequest
1 голос
/ 10 апреля 2010

Я строю каркас, где люди смогут сохранять предметы, которые они создали, унаследовав мой класс. Я буду перебирать каждый тип в домене приложения, чтобы найти классы, которые я хочу отобразить в nhibernate. Каждый найденный класс будет подклассом унаследованного типа.

Я знаю, как создавать подтипы в FluentNhibernate, но каждый подтип требует своего собственного класса ClassMap. Поскольку я не буду знать их до выполнения, я никак не смогу это сделать.

Есть ли способ, которым я могу добавить сопоставления в свободный nhibernate?

Обратите внимание, я знаю, что это возможно без свободного использования nhibernate с использованием класса Cfg, но я не хочу управлять одним и тем же кодом двумя разными способами.

Ответы [ 2 ]

1 голос
/ 05 октября 2011

что-то вроде

Type classToMap = GetClassToMap();
var subclassmap = typeof(SubClassMap<>).MakeGenericType(classToMap);

foreach(var item in classToMap.GetPropertiesToMapSomehow())
{
    var expression = // build lambda of property
    subclassMap.Map(expression).Column("col") ...
}

config.Add(subclassmap) // NHibernate.Cfg.Configuration
0 голосов
/ 27 апреля 2010

Была поддержка для этого сразу, и API все еще там, но теперь он ограничен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...