У меня в моей сущности 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
. Как правильно установить поведение для несохраненных объектов? Я также предпочел бы сохранить ICollection
в качестве открытого типа.