1

这个问题起初可能看起来有点奇怪,但有一个遗留项目正在以这种方式工作,我想知道是否有一种方法可以使用 Fluent Nhibernate 生成其 hbm 文档。我们有一个不是抽象类的父类。像这样:

    [Entity("EmployeeTable")]
    public class Employee
    {
       //Memebers of Employee
    }

它有一些子类。这些子类的目的仅仅是为了代码的可重用性,正如你所看到的,这些是一些视图(摘要)来表示一些信息。

[Entity("EmployeeType1View")]
public class EmployeeType1:Employee
{
//Memebers of EmployeeType1
}

[Entity("EmployeeType2View")]
public class EmployeeType2:Employee
{
//Memebers of EmployeeType2
}

所以这里有一个问题:有没有一种方法可以告诉 fluent nhibernate 不要考虑这个继承层次结构,或者换句话说,告诉它为这些类中的每一个生成单独的 hbm 文件?

4

1 回答 1

1

不幸的是,FNH 不能单独编写子类映射。但是,您可以在将映射写入光盘后更改映射。

var model = new FluentNHibernate.Automapping.AutoPersistenceModel();
// add assembly and the like to model
model.WriteMappingsTo(path);

forech(var baseclass in classesWithSubclasses)
{
    var doc = new XmlDocument();
    doc.Load(baseclass.getType().FullName + ".hbm.xml");
    // use xpath to separate the subclassmapping in its own file
}
于 2012-09-24T09:05:45.770 回答