FluentNhibernate动态运行时映射

时间:2010-04-10 18:00:57

标签: nhibernate fluent-nhibernate

我正在构建一个框架,人们可以通过继承我的类来保存创建的项目。我将迭代appdomain中的每个类型来查找我想要映射到nhibernate的类。我找到的每个类都将是继承类型的子类。

我知道如何在FluentNhibernate中创建子类型,但每个子类型都需要自己的ClassMap类。由于我不知道这些直到运行时,我无法做到这一点。

有没有办法可以将映射添加到流畅的nhibernate?

注意,我知道这可能没有使用Cfg类的流畅的nhibernate,但我不想以两种不同的方式管理相同的代码。

2 个答案:

答案 0 :(得分:1)

一些事情

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

答案 1 :(得分:0)

有一次支持这个,api仍在那里,但它现在已被删除。