私たちは、あるデータベースからデータを読み込んでそれを完全に異なるフォーマットに変換する翻訳アプリケーションを構築しています。私たちはNHibernateを使用してソースデータベースからまだ利用できないものを読み込みます。ソースオブジェクトをダミーにし、翻訳コアを通して渡し、出力を検証することによって、翻訳コアロジックをテストしたいと考えています。 NHibernate.LazyInitializationException:Initializing [Unavailable#] - コレクションを遅延して初期化できませんでした。セッションもセッションも閉じられていませんでした。(PersistentGenericBagとして宣言された)1対多コレクションにアイテムを追加しようとするたびに、誰かがこれに取り組んでいますか?セッションなしのNHibernate
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);
}
PersistentGenericBagを使用しますか?通常、IListまたはISet のようにプロパティを宣言するだけです。 PersistentGenericBagは通常、NHibernateの内部にあります。 –
^^こちらNHibernateの強みは、POCOオブジェクトを使用しています。 NHibernateライブラリを参照する必要もなく、トランザクション層をテストするための標準オブジェクトを作成することができます。 – anonymous