/// <summary>
/// Maps the <see cref="ReflectionWrappers.PropertyWrapper"/> to a <see cref="IRelationshipDef"/>.
/// </summary>
/// <returns></returns>
public IRelationshipDef MapOneToOne()
{
if (!MustBeMapped()) return null;
CheckReverseRelationshipValid();
var relatedClassType = PropertyWrapper.RelatedClassType.UnderlyingType;
DeleteParentAction deleteAction = GetDeleteAction();
var relDef = new SingleRelationshipDef(this.PropertyWrapper.Name, relatedClassType
, new RelKeyDef(), true, deleteAction)
{
OwningBOHasForeignKey = this.OwningBoHasForeignKey,
ReverseRelationshipName = this.ReverseRelationshipName
};
SetRelationshipType(relDef);
relDef.SetAsOneToOne();
IRelPropDef relPropDef = this.CreateRelPropDef();
relDef.RelKeyDef.Add(relPropDef);
return relDef;
}