使用流畅的nhibernate来检索父对象

时间:2011-07-27 06:01:35

标签: nhibernate fluent

我有一对多的映射。当我尝试检索父对象时,即使我在映射中停止延迟加载,也会出现子对象。我想只得到父对象,而不是孩子对象。我该怎么做?

2 个答案:

答案 0 :(得分:1)

在调试代码时,显然会触发延迟加载。

如果您不确定这意味着什么,请尝试理解: -

  1. 你在代码上加了一个断点
  2. 您检索父
  3. Visual studio点击断点
  4. 你看看孩子是否已经装好
  5. visual studio调试器会为您检索子项< - 这是导致延迟加载的原因。通过在VS中观察这个,你正在强迫一个懒惰的负载。
  6. 如果你仍然不确定那么请添加一个SQL分析器,使用log4net登录,甚至下载NHProf(免费30天)并查看生成的sql然后没有断点和你会看到差异。

    HTH

答案 1 :(得分:0)

如果您不需要孩子,为什么要访问孩子?当您不访问它们时,不会初始化延迟集合。在postloading event中也许是这样的事情:

var pc = Parent.Childs as IPersistentCollection;
if (pc != null && !pc.WasInitialized)
    Parent.Childs = null;