c# – NHibernate.LazyInitializationException

前端之家收集整理的这篇文章主要介绍了c# – NHibernate.LazyInitializationException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们偶尔会出现这个问题,但现在我每次都可以重现它.我在自定义构建的论坛上增加了一个视图计数器,这会导致错误

NHibernate.LazyInitializationException: Failed to lazily initialize a collection,no session or session was closed

在对象中的另一个集合上发生此错误.如果我添加

.Not.LazyLoad()

对于我的Fluent映射,错误在我的项目周围移动.我一直禁止对对象的延迟加载,直到它没有延迟加载的地方,然后它抛出了这个错误

NHibernate.LazyInitializationException: Could not initialize proxy – no Session.

所以,然后我在懒惰的装载上取出了遗嘱,现在我又恢复了原点.当我递增此视图计数器时,它只会出错.这是我的基类保存代码的片段:

using (ISession session = GetSession())
using (ITransaction tx = session.BeginTransaction())
{
       session.SaveOrUpdate(entity);
       tx.Commit();
}

环顾四周,我在另一篇文章中读到这些交易可能会导致问题,但这是因为它们被放置在哪里.此代码扩展到与我的域对象(存储库类)分开的类.这是帖子:

hibernate: LazyInitializationException: could not initialize proxy

我不相信这是我的问题.这是第一个抛出错误的集合的流畅映射.还有其他几个类似的集合.

HasManyToMany(x => x.Votes)
    .WithTableName("PostVotes")
    .WithParentKeyColumn("PostId")
    .WithChildKeyColumn("VoteId");

解决方法

对此问题的进一步研究表明,在单次回调服务器时,如果执行保存并获取,则需要刷新会话.我在保存后进行了冲洗,这似乎纠正了问题.

猜你在找的C#相关文章