0

嗨,我有两个映射:

Ansprechpartner-映射文件:

<class name="Book.Doa.Ansprechpartner, Book.Co" table="ANSPRECHPARTNER">
<id name="ID">
  <generator class="foreign">
    <param name="property">Parent</param>
  </generator>
</id>

<property name="AnsprechPartnerName" length="20" column="PARTNER"/>
<property name="KonfStandort" length="20" column="KONFERENZSTANDORT"/>

<one-to-one name="Parent"
        class="Book.Doa.Gebaeude, Book.Co" constrained="true"/>

Ansprechparter.CS:

public class Ansprechpartner : DomainObject<long>
{
    public virtual string AnsprechPartnerName { get; set; }
    public virtual string KonfStandort { get; set; }
    public virtual Gebaeude Parent { get; set; }

    public Ansprechpartner()
    {
    }
    public Ansprechpartner(

        string ansprechpartnername,
        string konfstandort,
        Gebaeude parent
        )
    {
        AnsprechPartnerName = ansprechpartnername;
        KonfStandort = konfstandort;
        Parent = parent;
    }
}

Gebaeude-映射文件:

<class name="Book.Doa.Gebaeude, Book.Co">
    <id name="ID">
        <generator class="native">
            <param name="sequence">GLOBALSEQUENCE</param>
        </generator>
    </id>

    <property name="Bezeichnung" not-null="true" length="64" />
    <property name="Standort" column="Konfstandort" />

  <one-to-one name="Partner" lazy="false" cascade="all" fetch="join" outer-join="true"
   class="BookIt.Domain.Ansprechpartner, BookIt.Core"  />

</class>

Gebaeude.CS:

     public class Gebaeude : DomainObject<long>
    {

        public virtual string Bezeichnung { get; set; }
        public virtual string Adresse { get; set; }
        public virtual Stadt Stadt { get; set; }
        public virtual string Plz { get; set; }
        //Konferenzstandort ggf. unten noch hinzufügen.
        public virtual string KonfStandort { get; set; }

        public virtual Ansprechpartner Partner { get; set; }


         ......
}

他们是一对一的关系。

我尝试通过以下方式获取值“AnsprechPartnerName: room.Etage.Gebaeude.Ansprechpartner.AnsprechPartnerName

但我总是收到错误:Object reference not set to instance of an object

这是为什么?我在这方面做错了什么。我的其他映射工作完美。

任何人都可以帮忙吗?

4

1 回答 1

0

This error simply means that you are trying to access a property of an object which is null. It does not imply that there is something wrong with your mapping, and there is no reason for us to think mapping is the problem based on data you provided.

Use a debugger and break on expression you mentioned (room.Etage.Gebaeude.Ansprechpartner.AnsprechPartnerName) and check if each property is set.

Is room not null?

Is room.Etage not null?

Is room.Etage.Gebaeude not null?

If one of them is not set, check in your database if data actually exists. Only then can you assume that problem is with your mapping.

于 2012-11-13T14:56:09.823 回答