0

我最近开始使用 Nhibernate,我对它非常满意,直到我需要绑定到 ASP.NET 控件。我在将 gridview 绑定到产品集合 (IList) 时遇到了重大问题。最后,我被迫纠正一个小例程,将我的 IList 转换为 DataTable。一旦它在数据表中,它就可以完美地工作。

现在是时候将标准下拉框绑定到产品集合 (IList) 的 1 个字段,但似乎我又遇到了问题。

所以这让我得出结论,我一定做错了什么?

我不敢相信不可能将 ASP.NET 控件绑定到从 NHibernate 返回的类(在我的情况下为产品)的集合 (IList)。

我非常感谢任何人对这种情况的任何反馈......我不知所措

谢谢

4

2 回答 2

0

问题不在于你不能绑定,因为你可以。通常,当您在错误的时间绑定时,就会出现此类问题。

NHibernate 支持惰性。因此,如果您的查询是惰性的,并且返回对象的属性是惰性的,那么在引用项目和属性之前,不会从数据库中提取值。如果将这些绑定到 UI 中的控件,则在呈现页面之前不会提取值。

此时很有可能您已经关闭了数据库连接

简单的解决方案是确保您绑定的数据不会延迟加载。

于 2010-11-16T06:27:02.833 回答
0

创建一个List<T>orBindingList<T>对象并将查询中的 IList 对象传递给构造函数。如果 IList 对象不是通用列表,则可以使用 LINQ ilistObject.Cast<T>().ToList(),.

于 2010-11-17T06:10:18.960 回答