私はオブジェクトにレイジープロパティを使用しています。 1)そのプロパティを持たないオブジェクトをロードし、セッションからデタッチする必要があります。 2)次に、このオブジェクトを新しく作成したセッションに再接続し、そのプロパティをロードする必要があります。怠惰は場合 Nhibernateにおけるプロキシの検出と接続
using (ISession session = GetSessionFactory().OpenSession())
{
session.Update(dataResource);
NHibernateUtil.Initialize(dataResource.Value);
}
だった場合:私はそれを再接続し、(2)履行しようとしていたより
return session
.CreateCriteria<DataResource>()
.List<DataResource>()
.ToArray();
:
だから、私はデータベース(1)からデータをフェッチしています1対多のリンクで - すべて正常に動作します。 (1)stepは私の実際のオブジェクトを返す。プロキシはそのプロパティに設定され、(2)ステップの後では実際のオブジェクトになる。 しかし、私はプロパティで怠惰が必要な場合は、NHibernateは実際のオブジェクトでそれを処理することはできないようです。代わりに、ステップ(1)の後にプロキシを返します。ステップ(2)よりも、MappingExceptionをスローします:.Update()行のCastle.Proxies.DataResourceProxyのための保持者はありません。何とか自分のプロキシを認識できません。
は'てSession.lock(dataResource、LockMode.NONEは)にしてみてください参照unproxyする – Firo