背景
我们有几个项目/应用程序运行相同的模型。它们都有自己独特的实体/表,但也共享 1 个特定的通用实体/表。即应用程序 A 需要的实体,应用程序 B 将永远不会需要,但公用表除外,反之亦然。现在公用表与应用程序 A 的表以及应用程序 B 的表都有关系。加载大量 HBM 时事情会变得相当缓慢,因此我们实现了一个系统,该系统仅加载当前正在运行的应用程序所需的 HBM。
问题
在应用程序 A 中,当我们现在访问公共表/实体时,如下所示:
session.Linq<CommonEntity> ().Where (...);
我们得到以下异常
NHibernate.MappingException:关联引用未映射的类:(应用程序 B 的实体)
我希望 NHibernate 只有在我们明确尝试通过公共实体的关系访问应用程序 B 的表时才会中断,结果它不会中断,因为我们从未从应用程序 A 这样做。但是,唉。
问题
有没有办法配置 NHibernate 来延迟关系映射的验证,直到它被访问?
我们确实使用延迟加载。