Paul Knopf
Paul Knopf

Reputation: 9786

FluentNhibernate dynamic runtime mappings

I am building a framework where people will be able to save items that the created by inheriting a class of mine. I will be iterating over every type in the appdomain to find classes that I want to map to nhibernate. Every class that I find will be a subclass of the inherited type.

I know how to create sub types in FluentNhibernate, but every sub type requires its own ClassMap class. Since I won't know these untill runtime, there is no way I can do that.

Is there a way that I can add mappings to fluent nhibernate?

Note, I know this is possible without fluent nhibernate using the Cfg class, but I don't want to manage the same code two different ways.

Upvotes: 1

Views: 770

Answers (2)

Firo
Firo

Reputation: 30813

something along the lines

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

Upvotes: 1

Paul Knopf
Paul Knopf

Reputation: 9786

There was support for this at once time, and the api is still there, but it is now depricated.

Upvotes: 0

Related Questions