У меня есть модель, в которой несколько классов имеют список типов значений:
class Foo { public List<ValType> Vals; }
class Bar { public List<ValType> Vals; }
Foo и Bar не связаны, кроме того, что они оба содержат эти значения. Правила добавления, удаления и т. Д. ValTypes различны для каждого класса. Я хотел бы сохранить этот дизайн в моем коде.
Бывают случаи, когда я хочу скопировать, например, несколько Vals из Foo в Bar. В базе данных каждый ValType имеет свою собственную таблицу, чтобы она была маленькой, легкой (она просто имеет родительский ID + 2 поля) и позволяла проверять целостность. Я знаю, что NHibernate говорит, что я должен сохранять свои объекты такими же гранулярными, как база данных, но это только делает мой код более уродливым.
Лучшее, что я до сих пор думал, - это создание отдельных подклассов ValType, по одному для каждого родителя. Тогда я могу отобразить их на этом уровне. Затем я подключу логику добавления и удаления для автоматического преобразования между правильными подклассами и фактически сохраню их в закрытом списке с правильным типом подкласса. Но это казалось немного запутанным.
Как мне отобразить это в NHibernate (Fluent NHibernate, если это возможно)?
Пожалуйста, дайте мне знать, если это дубликат - я не совсем уверен, как искать это.