对于 ASP.Net 项目,我使用 (Fluent) NHibernate 进行持久性,使用 JQGrid 显示表格中的数据。但是当我想使用 JQGrid 的自动完成功能时,我会System.ArgumentException: Column 'HibernateLazyInitializer' does not belong with this table.
在 AJAX 请求中获取数据。但是这个错误只是偶尔发生,并且在列表中使用了某种代理类时。因此我认为这与 NHibernate 的延迟加载有关。
protected new void Page_Load(object sender, EventArgs e)
{
base.Page_Load(sender, e);
_jqAutoComplete.DataSource = Session.CreateCriteria<Domain.Brand>()
.List<Domain.Brand>();
_jqAutoComplete.DataBind();
}
通常延迟加载是一个非常酷的功能。只有在这种情况下才会导致错误,因此我不想在整个项目中禁用它。那么,有没有一种方法可以修改 CreateCriteria 以在这种情况下不使用 LazyLoading 而使用 EagerLoading?还是我还缺少其他东西?如果有理解 LazyLoading 的好教程,我也会很高兴。