В моей сущности NHibernate есть следующее:
private ICollection<string> _stringSet = new HashSet<string>();
public virtual ICollection<string> StringSet
{
get { return _stringSet; }
}
Затем в моем отображении Fluent я отображаю это так:
HasMany(x => x.StringSet)
.Table("String_Set")
.Element("StringValue")
.AsSet();
К сожалению, когда я пытаюсь сохранить сущность, я получаю ArgumentNullException
, говорящее «Коллекция не может быть нулевой». Я не получаю эту ошибку, если по умолчанию мое поле равно списку, но, как вы видите в моем отображении, я хочу установить поведение даже из несохраненной сущности. Мне кажется, это проблема с HashSet<>
, не реализующим неуниверсальный ICollection
. Как правильно установить поведение Set для несохраненных объектов? Я также предпочел бы сохранить ICollection<string>
в качестве моего открытого типа.