Мы создаем приложение для перевода, которое считывает данные из одной базы данных и переводит их в совершенно другой формат. Мы будем использовать NHibernate для чтения из исходной базы данных, которая еще не доступна. Мы хотим проверить логику ядра перевода, суммируя исходный объект, передавая его через наше ядро перевода и проверяя вывод. Каждый раз, когда мы пытаемся добавить элементы в коллекцию «один ко многим» (объявленную как PersistentGenericBag), мы получаем NHibernate.LazyInitializationException: Initializing [Unavailable #] - не удалось лениво инициализировать коллекцию, ни один сеанс или сеанс не был закрыт. Кто-нибудь занимался этим?
private PersistentGenericBag<Child> _Children = null;
[NHibernate.Mapping.Attributes.Bag(1, Name = "Children", Table = "Children", Lazy = CollectionLazy.False, Cascade = "all")]
[NHibernate.Mapping.Attributes.Key(2)]
[NHibernate.Mapping.Attributes.Column(3, Name = "ParentId")]
[NHibernate.Mapping.Attributes.OneToMany(4, ClassType = typeof(Child))]
public virtual PersistentGenericBag<Child> Children
{
get
{
if (_Children == null)
{
_Children = new PersistentGenericBag<Child>();
}
return _Children;
}
set { _Children = value; }
}
[TestMethod]
public void Xyz()
{
Parent parent = new Parent ();
parent.Children.Add(new Child()); //exception thrown here
Assert.AreEqual(parent.Children.Count, 1);
}