В конструкторе для вашего класса отображения сопоставьте ссылку, используя метод HasMany
.HasMany
создаст отношение один-ко-многим .HasManyToMany
создаст отношение «многие ко многим» .
Например: HasMany(x => x.Address).LazyLoad();
Это создаст одно-к-одному-множество отношений между классом User
и классом Address
.
Для многих ко многим вам также необходимо указать имя таблицы и, если хотите, левую и правую стороны.сопоставления таблиц.
Например: HasManyToMany(x => x.Address).Table("AddressToUser").ParentKeyColumn("AddressId").ChildKeyColumn("UserId").LazyLoad();
Если вы решили установить различие между UserAddress
и AgencyAddress
(гдеэто подклассы Address) - вы можете использовать метод DiscriminateSubClassesOnColumn
в классе AddressMap
, чтобы FNH знал, как создать дополнительный столбец для определения типа создаваемого объекта.
Например: DiscriminateSubClassesOnColumn("Type").AlwaysSelectWithValue();