我所有的NH实体都来自一个名为BusinessEntity的类型,它的 有最基本的ID值,Created,CreatedBy,Updated,UpdatedBy。NHibernate异常集合[..User.Groups]没有被flush()处理()
CreatedBy/UpdatedBy需要用户
我有一个IPreUpdateEventListener和IPreInsertEventListener火灾 获取的审计值当前日期时间。同样在这里,我有 我的逻辑来获取当前用户运行,我通过运行 条件查询针对Windows用户原则来抓取。从我 所有岗位上的NH用户群的理解,对这个问题我的用户类需要 被即时加载这个在我的事件侦听 正常工作,这是我如何加载用户
public User GetByDomainPrinciple(string domainPrinciple)
{
var domainPrincipleCriteria = DetachedCriteria.For<User>()
.Add(Restrictions.Eq("DomainPrinciple", domainPrinciple))
.SetFetchMode("Roles", FetchMode.Eager)
.SetFetchMode("Groups", FetchMode.Eager)
.SetFetchMode("Groups.Roles", FetchMode.Eager)
.SetCacheable(true);
return Repository.QuerySingle(domainPrincipleCriteria);
}
Repository.QuerySingle(domainPrincipleCriteria);
只是
return detachedCriteria
.GetExecutableCriteria(_conversation.Session).UniqueResult<T>();
我错过了什么或是我的标准查询错误?我想绝对 最坏的情况下,我可以改变CreatedBy是一个Guid而不是一个 用户,只是手动分配FK那样,但这看起来很脏 脏。
除非我错过了有用的评论这是没有什么帮助,这是我得到了我的事件监听器的代码,除了我从事件监听器NH来获取用户而不是只是像他的例子一样使用窗口原理。 – 2010-01-08 17:14:47
我想如果你正在加载任何东西,它会给你这个错误。我试图在NH用户组以及其他人一起回答这个问题,但没有答案。 http://groups.google.com/group/nhusers/browse_thread/thread/1db7fd843b0b4b56/cdaa52f93e94e167?hl=en&lnk=gst&q=epitka#cdaa52f93e94e167。对不起,我没有更多的帮助。 – epitka 2010-01-08 17:26:35
这不是很有用,所以我很惊讶它被标记为解决方案。 – 2011-09-19 09:21:18