我对 NHibernate 比较陌生,但在最近的几个程序中一直在使用它,我爱上了它。我遇到了需要将 4-5 个数据库中的数据聚合到一个数据库中的情况。具体来说就是序列号数据。每个数据库都有自己的映射文件,但最终实体都共享相同的基本结构(Serial 类)。
我知道 NHibernate 想要每个类都有一个映射,所以我最初的想法是有一个基本的串行类,然后从它为每个不同的数据库继承并创建一个唯一的映射文件(继承的类将有零内容)。这对于抓取所有数据和填充对象应该很有用。然后我想做的是使用基类映射将这些继承的类(不确定正确的术语是什么)保存到基类表中。
问题是我不知道如何强制 NHIbernate 为对象使用特定的映射文件。使用“session.save()”时,将继承的类转换为基类没有任何作用(它抱怨没有映射)。
有没有办法明确指定要使用的映射?还是我缺少一些 OOP 主体来更具体地将继承的类转换为基类?或者这个想法只是一个坏想法。
我能找到的关于 NHibernate(第 8 章)的所有继承内容似乎并不完全适用于这个函数,但我可能错了(每个具体类的 table-per-concrete-class 看起来可能有用,但我可以'关于 NHibernate 如何计算出要做什么,我完全不了解它)。