我正在构建一个框架,人们可以通过继承我的类来保存创建的项目。我将迭代appdomain中的每个类型来查找我想要映射到nhibernate的类。我找到的每个类都将是继承类型的子类。
我知道如何在FluentNhibernate中创建子类型,但每个子类型都需要自己的ClassMap类。由于我不知道这些直到运行时,我无法做到这一点。
有没有办法可以将映射添加到流畅的nhibernate?
注意,我知道这可能没有使用Cfg类的流畅的nhibernate,但我不想以两种不同的方式管理相同的代码。
答案 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仍在那里,但它现在已被删除。