При использовании LinFu ProxyFactoryFactory в NHibernate вспомогательное поле для коллекции не указывается

У меня возникла проблема, когда я пытаюсь переключиться с Castle ProxyFactoryFactory на LinFu ProxyFactoryFactory в NHibernate.

У меня есть такой объект:

public class Foo
{
    private ISet<Bar> _bars = new HashedSet<Bar>();

    public virtual void AddBar(Bar bar)
    {
       if (!_bars.Contains(bar)
            _bars.Add(bar);

       bar.Foo = this;
    }
}

Это сопоставлено с Fluent NHibernate следующим образом:

public class FooDbMap : ClassMap<Foo>
{
     public FooDbMap()
     {
          HasMany(x => x.Bars)
              .Access.CamelCaseField(Prefix.Underscore)
              .LazyLoad()
              .KeyColumn("FooId")
              .AsSet()
              .Cache.ReadWrite();
     }
}

Отношения являются двунаправленными и отображаются как таковые на стороне бара.

Проблема возникает, когда я вызываю метод AddBar. Коллекция _bars имеет значение null, и генерируется исключение NullReferenceException.

Проблема исчезнет, ​​если я переключусь обратно на Castle ProxyFactoryFactory.

Ошибка возникает не со всеми сопоставленными коллекциями, только с одним экземпляром.

Проблема все еще возникает, даже если я изменяю _bars на readonly! Таким образом, кто-то может установить поле только для чтения обратно в ноль, даже после того, как поле было назначено.

Есть идеи?

0 ответов

Другие вопросы по тегам