我有文档扫描系统,扫描几种类型的文档。最初,文档在扫描时没有信息,然后它们被分类,并在稍后的第二步中为它们输入附加信息。所以,我有一个名为Document的基类,每个类型的子类及其各自的元数据如下所示。我把它设置为NHibernate中的每子类表(连接子类)映射。
public class Document
{
public int ID { get; set; }
public string FilePath { get; set; }
}
public class Certificate : Document
{
// certificate-specific fields
}
public class Correspondence : Document
{
// correspondence-specific fields
}
我需要做的是首先创建一个Document类并保存它。然后在第二步中检索并将其转换为其中一个子类类型并填写其余信息。这样做的最佳方法是什么,这对NHibernate来说是否可能?如果可能的话我想保留原始文件记录,但如果我不得不放弃它,它不是一个破坏者。
答案 0 :(得分:3)
不幸的是,NHibernate不允许在初始创建后在子类之间切换;要按照您想要的方式工作,您有3个选择:
答案 1 :(得分:2)
此问题已经讨论过here。我会跟Terry Wilcox的小费一起使用这个角色。构成而不是继承。