您好我有两个映射:
Ansprechpartner-Mappingfile:
<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-Mappingfile:
<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 with:room.Etage.Gebaeude.Ansprechpartner.AnsprechPartnerName
但我总是收到错误:Object reference not set to instance of an object
为什么?在那一部分我做错了什么。我的其他映射工作正常。
有人可以帮忙吗?
答案 0 :(得分:0)
此错误仅表示您尝试访问null为的对象的属性。这并不意味着您的映射存在问题,我们没有理由认为映射是基于您提供的数据的问题。
使用调试器并中断您提到的表达式(room.Etage.Gebaeude.Ansprechpartner.AnsprechPartnerName
)并检查是否已设置每个属性。
room
不是null
吗?
room.Etage
不是null
吗?
room.Etage.Gebaeude
不是null
吗?
如果未设置其中一个,请检查数据库中是否存在实际数据。只有这样你才能认为问题与你的映射有关。