类中有nHibernate的空值属性?

时间:2013-03-11 16:05:01

标签: c# nhibernate properties

Frecuencia.cs

public class Frecuencia : Modelo<Frecuencia>
{
    ...
    public virtual string FrecuenciaEspecifica { get; set; }
    ...

    protected virtual FrecuenciaEspecifica GetFrecuenciaEspecifica()
    {
        Console.WriteLine(FrecuenciaEspecifica);
    }
}

frecuencia.hbm.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                  assembly="Dominio"
                  namespace="Dominio">
  <class name="Frecuencia" table="frecuencias">
    ...
    <property name="FrecuenciaEspecifica" />
  </class>
</hibernate-mapping>

如果我拨打GetFrecuenciaEspecifica(),我会得到一个空输出,但如果我尝试: 在另一个类中Console.WriteLine(Frecuencia.FrecuenciaEspecifica),我得到了输出值。 见下面的图片

image1

image2

我做错了什么?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚你是如何创建每个实例的,但鉴于你正在使用NHibernate,我猜第一个例子,它是null,不是从ISession获得的,或者如果你是的,会议结束了,WPF正在吞下这个例外。

如果未从会话加载,则没有代理,也没有从数据库加载值的机制。您可以使用即时窗口进行检查,然后键入this is NHibernate.Proxy.INHibernateProxy,如果值为false,则表示您未从会话中加载它。

如果会话已关闭,并且WPF正在吞咽它,则可以使用“Visual Studio例外”对话框停止ObjectDisposedException