【发布时间】:2020-01-31 14:09:09
【问题描述】:
我遇到了以下代码导致异常的问题。
public IList<Persoon> GetPersonenWithCurrentWorkScheme(int clientId)
{
//SELECT N+1
Session.QueryOver<Werkschema>()
.Fetch(ws => ws.Labels).Eager
.JoinQueryOver<WerkschemaHistory>(p => p.Histories)
.JoinQueryOver<ArbeidsContract>(a => a.ArbeidsContract)
.JoinQueryOver<Persoon>(p => p.Persoon)
.Where(p => p.Klant.ID == clientId)
.Future();
var result = Session.QueryOver<Persoon>()
.Fetch(p => p.ArbeidsContracten).Eager
.Where(p => p.Klant.ID == clientId)
.Future();
return result.ToList();
}
当我评论方法的第一部分 (Session.QueryOver WerkSchema...) 时,代码运行良好。当它没有被注释时,第一个出现的NHibernate.Commit() 会抛出一个异常。 (日期时间转换的东西,但这并不是我真正担心的)。
我的问题:第一段代码有用吗?它有什么作用吗?结果没有存储在稍后使用的变量中,所以对我来说它看起来像死代码。或者这是一些 NHibernate 的黑魔法,它实际上做了一些有用的事情?
【问题讨论】:
标签: c# nhibernate queryover