В зависимости от того, как вы хотите это сделать, вам нужно либо сопоставить свою коллекцию как отображение элементов, либо как коллекцию компонентов (это <element>
и <composite-element>
в терминах NHibernate). Для первого потребуется определение IUserType
, а для второго - если у вашего Hour
класса будет более одного свойства.
Если вы придерживаетесь одного свойства, вам нужно определить IUserType
, чтобы NHibernate знал, как преобразовывать ваш тип в базу данных и из нее. Как только вы это сделаете, вы можете отобразить его с помощью Fluent NHibernate следующим образом:
HasMany(x => x.XboxBreakHours)
.Element("value", x => x.CustomType<YourUserType>);
Указывает, что ваша коллекция хранится в таблице со столбцом value
, содержащим фактические значения. Вызов CustomType
- это то, что говорит NHibernate использовать IUserType
для этой коллекции.
Если у вас в классе Hour
будет несколько свойств, вам нужно сделать следующее (примечание: на самом деле это очень похоже на отображение Component
).
HasMany(x => x.XboxBreakHours)
.Component(comp =>
{
comp.Map(x => x.Time);
comp.Map(x => x.Another);
});