NHibernate - Lazy Loaded Collection

时间:2010-01-25 20:26:00

标签: nhibernate lazy-loading

NHibernate中的延迟加载集合是否应该给我一个NullReferenceException?我在以下方法中遇到异常:

public void Test(ISession session, int id)
{
    var entity = session.Load<MyEntity>(id);
    entity.LazyLoadedCollection.Add(SomeItem);
}

对LazyLoadedCollection的调用正在抛出。我的映射看起来像:

<bag lazy="true" table="MyTable">
  <key>
    <column name="LazyLoadedCollection" />
  </key>
  <many-to-many class="LazyLoadedItem">
    <column name="LazyLoadedItemId" />
  </many-to-many>
</bag>

这是NHibernate中的预期行为吗?

2 个答案:

答案 0 :(得分:2)

没有看到你的课很难说,但你可能没有意识到的一件事是你需要在你班级的构造函数中填充每个集合。

NHibernate会在特定时间自行替换这些集合,但您仍需要确保它们最初填充HashedSet<T>List<T>或其他内容,具体取决于您的界面重新使用。

答案 1 :(得分:-2)

不,不是。这不是在互联网上提问的好方法。

如果您不发布抛出异常的代码并告诉我们异常的来源,那么为您提供一个方向是不可能的。