我目前的项目有一个奇怪的问题.延迟加载查询不起作用.当我查询列表时,nhibernate分别获取所有关联.
我提取了它的一小部分并将其放入一个单独的解决方案中.基本上我现在拥有的是一个Account-Table和一个AccountSync-Table.两者都有ID和URL,而ID只是db-guid.
我的课程是:
public class HippoAccount
{
public virtual Guid Id { get; set; }
public virtual string Url { get; set; }
public virtual HippoAccountSync Sync { get; set; }
}
public class HippoAccountSync
{
public virtual Guid Id { get; set; }
public virtual string Url { get; set; }
public virtual HippoAccount Account { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我现在通过它的guid加载一个对象时:
var account = session.Load<HippoAccount>(accountId);
Console.WriteLine(NHibernateUtil.IsPropertyInitialized(account, "Sync"))
Run Code Online (Sandbox Code Playgroud)
...它返回false并且帐户本身是代理.
但是当通过条件API加载列表时:
var account = (HippoAccount)session
.CreateCriteria(typeof (HippoAccount))
.Add(Restrictions.Eq("Id", accountId)) …Run Code Online (Sandbox Code Playgroud)