Требования вашего бизнес-домена, в котором работает ваше приложение, будут определять, должен ли у вас быть список целых (набор типов значений) или список сущностей.Если есть хороший вариант использования для IList<int>
, то непременно сделайте это, и пусть NHibernate отобразит эту ассоциацию соответственно.В противном случае просто удалите его.
Однако удаление его, потому что оно кажется вам незнакомым, не является уважительной причиной.
Я часто использую это в своих моделях доменов.Сейчас у меня есть много «приложений Twitter», которые индексируют твиты на основе поиска «Ключевые слова», поэтому я сопоставил его так:
public class TwitterApplication
{
public virtual int Id { get; set; }
public virtual string ApplicationName { get; set; }
// other properties (snip)
public virtual ISet<string> Keywords { get; set; }
}
Я использую это сопоставление, потому что знаю, что:
- Количество ключевых слов будет небольшим (примерно 4 - 6)
- Я не заинтересован в сохранении ключевого слова DateAdded и т. Д.
- Я не собираюсь делатьПейджинг или запросы по ключевым словам, просто извлекайте их все одновременно или не выполняйте вовсе
Исходя из этого, я решил, что сопоставить его как набор строк было бы уместно.