我有一个模型,其中多个类都有一个值类型列表:
class Foo { public List<ValType> Vals; }
class Bar { public List<ValType> Vals; }
Foo 和 Bar 除了它们都包含这些 val 之外是无关的。ValTypes 的添加、删除等规则对于每个类都不同。我想将此设计保留在我的代码中。
例如,有时我想将一些 Vals 从 Foo 复制到 Bar。在数据库中,每个 ValType 都有自己的表,以保持它小而轻(它只有父 ID + 2 个字段),并允许完整性检查。我知道 NHibernate 说我应该让我的对象像数据库一样细化,但这只会让我的代码更丑陋。
到目前为止,我想到的最好的方法是为 ValType 创建单独的子类,每个父类一个。然后我可以在那个级别映射那些。然后,我将连接添加和删除逻辑以在正确的子类之间自动转换,并将它们实际存储在具有正确子类类型的私有列表中。但这似乎有点令人费解。
我如何在 NHibernate 中映射它(如果可能的话,流利的 NHibernate)?
请让我知道这是否是重复的——我不太确定如何搜索它。